2015-01-17 7 views
-2

Я получаю исключение в числовом формате. Я не знаю почему.Исключение форматирования номера при принятии целого числа

int t; 
    t=Integer.parseInt(br.readLine()); 
+1

Вы получаете это, потому что строка, прочитанная внутри, не является int. Пожалуйста, покажите сообщение об исключении stacktrace, и он скажет вам, почему, поскольку он скажет вам, что такое String, что вы пытаетесь проанализировать. –

+2

Я думаю, что это может быть не по теме, потому что его можно решить с помощью базовой отладки. Сохраните ввод с консоли в переменной и посмотрите на ее значение, прежде чем пытаться ее проанализировать, вы скоро узнаете, что пошло не так. Этот вопрос мало ценит будущих читателей. –

ответ

2

Вы должны сдать недопустимую строку parseInt из метода BufferedReader.readLine(). Этот метод is designed such that:

Символы в строке должны все быть десятичными цифрами, за исключением того, что первый символ может быть ASCII знак минус «-» («\ u002D»), чтобы указать отрицательное значение или ASCII плюс знак '+' ('\ u002B'), чтобы указать положительное значение.

Например:

  • действует: -1
  • действует: 1
  • недействителен: 1.1
  • недействителен: 1\r\n (1 с последующим символом новой строки)

Вы можете попробовать позвонить trim() на вывод bi.readLine() или сначала проверить его на регулярное выражение, чтобы убедиться, что оно действительно содержит допустимое строковое представление целого числа.

0

Убедитесь, что нет нулевых нулей и что строка содержит только одно целое число.

int t = Integer.parseInt(br.readLine().trim()); 
Смежные вопросы