#java
#java
Вопрос:
Что мне нужно сделать, так это написать программу, которая преобразует первый символ (который является charAt (0)) и второй символ (который является charAt (1) ) в значение, не превышающее 90, что равно (0 ~ 90), но я также должен определить их как независимую цифру, потому что моя программа сделает их недействительными, если это не цифра.
Итак, для примера, оно станет недействительным, если я введу 91, и оно будет действительным, если я введу число в диапазоне от 0 до 90
но я понятия не имею, как это сделать…
if(Character.isDigit(loop1.charAt(0))amp;amp;
Character.isDigit(loop1.charAt(1)))
Я пробовал это, но не работает
if(Character.isDigit(loop1.charAt(0)) amp;amp;
Character.isDigit(loop1.charAt(1)) amp;amp;
((loop1 >= 0)amp;amp;(loop1 <= 90)))
также это, но это не работает (я понятия не имею, что я делаю)
if(Character.isDigit(loop1.charAt(0)) amp;amp;
(((int)loop1.charAt(0)) >= 0) amp;amp; <=9
Character.isDigit(loop1.charAt(1)) amp;amp;
((int)loop1.charAt(1)) <= 9)
Пожалуйста, помогите мне … спасибо миллион!
Комментарии:
1. Я не понимаю вопроса. Можете ли вы перефразировать?
2. Приведение char к int не преобразует его в ожидаемую цифру. ‘1’ не равно 1. Вы можете сравнить значения char напрямую: например: x.charAt(0) <= ‘9’
3. Я отредактировал свой вопрос… Извините, я не очень хорош в объяснении вещей….
Ответ №1:
Предполагая, что я понимаю ваш вопрос, проанализируйте loop1
и протестируйте значения, используя простую if
проверку, например
int t = Integer.parseInt(loop1);
if (t < 0 || t > 90) {
System.out.println("Value outside accepted range.");
} else {
System.out.println("Value valid.");
}
Ответ №2:
Если я правильно понял, вы хотите преобразовать первые два символа строки в число и проверить, больше ли это число 90. Также вы хотите, чтобы цифры хранились в разных переменных (?). Если это так, этот код должен это сделать:
int digit1 = loop1.charAt(0) - '0';
int digit2 = loop1.charAt(1) - '0';
int number = digit1 * 10 digit2;
if ( number <= 90 amp;amp; number >= 0 )
System.out.println("Input is good");
else
System.out.println("Input is bad");
Комментарии:
1. Привет, твой ответ помогает мне!!! Но я не понимаю этот цикл 1.charAt(0) — ‘0’ что означает -‘
2. @ShangHuang Символ в java также может быть представлен как целое число (это значение ascii). Итак, что
loop1.charAt(0) - '0'
делает, это берет значение ascii первого символа и вычитает из него значение ascii символа ‘0’, таким образом, оставляя вас с самой цифрой.