Утвердить строку имеет определенную длину (Java) - PullRequest
0 голосов
/ 28 августа 2018

Есть ли способ утверждать, что метод ввода String имеет определенную длину?

Я пытался утверждать stringName[4];, но кажется, что он не работает

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вместо использования assert, я бы рекомендовал использовать Exception для проверки состояния переменных в виде простой демонстрации:

String[] arr = new String[3];
if (arr.length != 4) {
    throw new IllegalStateException("Array length is not expected");
}

Это напрямую выдаст подсказку по исключениям, и вам не нужно беспокоиться о assert в опциях jvm.

Exception in thread "main" java.lang.IllegalStateException: Array length is not expected
    at basic.AssertListLength.main(AssertListLength.java:7)
0 голосов
/ 28 августа 2018

Если вы просто хотите использовать ключевое слово Java assert, а не какую-либо библиотеку, такую ​​как JUnit, то вы, вероятно, можете использовать:

String myStr = "hello";
assert myStr.length() == 5 : "String length is incorrect";

Из официальных документов:

Утверждение утверждения имеет две формы. Первая, более простая форма:

assert Expression1;

где Expression1 - логическое выражение. когда система выполняет утверждение, оно оценивает Expression1, и если оно false выдает AssertionError без подробного сообщения.

Вторая форма утверждения утверждения:

assert Expression1 : Expression2 ;

, где: Expression1 - логическое выражение. Expression2 это выражение, которое имеет значение. (Это не может быть вызов метода, который объявлен ничтожный.)

Вы можете использовать следующее, если используете библиотеку тестирования, такую ​​как JUnit:

String myStr = "hello";
assertEquals(5, myStr.length());

Обновление: Как правильно указано в комментариях AxelH, после компиляции вы запускаете первое решение как java -ea AssertionTest. Флаг -ea разрешает утверждения.

...