2015-05-14 3 views
-9
long converted = Long.valueOf(input); 

input is String объект.Почему я получаю исключение NumberFormatException при преобразовании этого

Я хочу преобразовать строковое значение числа в long.

Предполагалось, что для преобразования строкового объекта мне нужно использовать .valueOf для возврата объекта Long.

Это потому, что я сохраняю результат в примитивной переменной?

Благодарим за помощь.

+0

Вы получаете это исключение, потому что вход недействителен долго. – manouti

+0

Что содержит ввод? Каково точное сообщение об исключении? – Eran

+0

попытайтесь напечатать строку внутри входа. и посмотрите, действительно ли это число – Saif

ответ

2

Если вы не указали действительный длинный ввод, он выдает NumberFormatException. Смотрите ниже:

long converted = Long.valueOf("3"); 
    System.out.println(converted); 

Печать

try{ 
    long converted = Long.valueOf("TEST"); 
    System.out.println(converted); 
} 
catch(NumberFormatException e){ 
    System.out.println("Your input is wrong.."); 
} 

Это проливает NumberFormatException, это потому, что не является допустимым числом. И печатает "Ваш вход неправильно .."

0

Научитесь использовать JavaDoc:

public static Long valueOf(String s) throws NumberFormatException

Возвращает Long объект, содержащий значение указанного String. Аргумент интерпретируется как представляющий десятичный знак long, точно так же, как если бы аргумент был задан методу parseLong(java.lang.String). Результатом является объект Long, который представляет целочисленное значение, заданное строкой. Другими словами, этот метод возвращает объект Long, равный значению:

new Long(Long.parseLong(s))

Параметры: s - строка для разбора.

Возврат: a Long объект, содержащий значение, представленное аргументом строки.

Throws: NumberFormatException - Если строка не может быть разобрана как long.

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