Если я вас правильно понимаю, вы читаете целое число или строку из стандартного ввода в виде строк и хотите проверить, что целое число на самом деле является целым числом. Возможно, ваша проблема в том, что Integer.parseInt () , который можно использовать для преобразования String в целое число, создает NumberFormatException . Похоже, что ваше назначение запретило использование обработки исключений (правильно ли я понял), и поэтому вам не разрешено использовать эту встроенную функцию, и вы должны реализовать ее самостоятельно.
Ok. Итак, поскольку это домашнее задание, я не собираюсь давать вам полный ответ, но вот псевдокод:
let result = 0 // accumulator for our result
let radix = 10 // base 10 number
let isneg = false // not negative as far as we are aware
strip leading/trailing whitespace for the input string
if the input begins with '+':
remove the '+'
otherwise, if the input begins with '-':
remove the '-'
set isneg to true
for each character in the input string:
if the character is not a digit:
indicate failure
otherwise:
multiply result by the radix
add the character, converted to a digit, to the result
if isneg:
negate the result
report the result
Ключевым моментом здесь является то, что каждая цифра в разы важнее, чем цифра непосредственно справа от нее, и поэтому, если мы всегда умножаем на основание при сканировании строки слева направо, то каждой цифре присваивается правильное значение. , Теперь, если я ошибаюсь, и вы на самом деле можете использовать try-catch, но просто не поняли, как:
int result = 0;
boolean done = false;
while (!done){
String str = // read the input
try{
result = Integer.parseInt(str);
done = true;
}catch(NumberFormatException the_input_string_isnt_an_integer){
// ask the user to try again
}
}