Как определить 00-90, когда у меня есть charAt для каждого из них

#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’, таким образом, оставляя вас с самой цифрой.