2013-10-07 3 views
0

Я создаю рамки для калькулятора фракций в классе AP CS. Я выяснил все, кроме того, как заставить его сказать вам, что ваш вход недействителен.
Тип входа, который является приемлемым, является 2_2/3 + 4/5 или 4/6 - 2/5, но я хочу, чтобы он дал ошибку, если введены буквы или более двух фракций. Вот то, что у меня есть, но похоже, что оно работает только с буквами, а не с цифрами. Я получил 13 от длины максимально допустимых фракций, которые я хочу. Ex. 2_2/4 + 3_4/5Java-сканер незаконного ввода

if (inputLength >= 13) { 
    System.out.println("Your Input is too long"); 
} 
+0

Я действительно не совсем понимаю, что вы делаете. Можете ли вы предоставить еще несколько кодов? – nhgrif

+0

Вы можете использовать регулярное выражение, чтобы проверить, соответствует ли вход в нужный формат. –

+1

Опубликованные ответы отвечают на ваш вопрос? – Trein

ответ

3

Другой способ проверить ваш вход с использованием regex. Я предлагаю вам взглянуть на любой учебник Java regex или обратиться к official doc.

Я знаю, что на первый взгляд regex может быть действительно ужасающим (и даже больше, если вы учитесь программировать), но это действительно полезно и стоит изучать. Чтобы выяснить шаблон, который вам понадобится для проверки ввода пользователя, вы можете использовать онлайн-валидатор как rubular или java-regex-tester.

0

Как другие сказали, используйте regex. После написания вашего заявления regex с помощью some of the links Trein provided вы можете позвонить String.matches(String regex), чтобы применить его.

Например:

if (inputString.matches("Your regex string here")) { 
    // Parse input 
} else { 
    System.out.println("Invalid input!"); 
} 

В качестве примечания, regex, вероятно, также лучший способ для разбора входных данных. См. The Java Tutorials (в частности, «Capturing Groups») для получения дополнительной информации об этом и regex в целом.

Смежные вопросы