我转换它时为什么会得到NumberFormatException

时间:2015-05-14 08:28:28

标签: java

long converted = Long.valueOf(input);

输入是String对象。

我想将数字的字符串值转换为long

我假设要转换字符串对象,我需要使用.valueOf来返回一个Long对象。

是因为我将结果存储在原始变量中吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

如果您没有提供有效的long作为输入,则会抛出NumberFormatException。见下文:

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

打印 3

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

这会引发NumberFormatException,因为它不是有效数字。并打印"您的输入错误。"

答案 1 :(得分:0)

学习使用JavaDoc

public static Long valueOf(String s) throws NumberFormatException

返回一个持有指定String值的Long对象。该参数被解释为表示带符号的十进制long,就像该参数被赋予parseLong(java.lang.String)方法一样。结果是Long对象,表示字符串指定的整数值。 换句话说,此方法返回一个Long对象,其值等于:

new Long(Long.parseLong(s))

参数: s - 要解析的字符串。

返回: 一个Long对象,保存由字符串参数表示的值。

抛出: NumberFormatException - 如果无法将字符串解析为long