我在将String解析为long时遇到问题。有问题的字符串是一个以空格开头的数字。例如:“35”。
NetBeans抛出此错误:
Exception in thread "main" java.lang.NumberFormatException: For input string: " 35"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:578)
at java.lang.Long.parseLong(Long.java:631)
at Sis1.main(Sis1.java:75)
/Users/michaeladrian39/Library/Caches/NetBeans/8.1/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
我想解析字符串“35”而没有空格。如何解决此错误?
答案 0 :(得分:3)
您想要解析字符串“35”但尝试解析具有额外空格的字符串“35”。通过调用(例如)trim()
:
Integer.parseInt(str.trim())
答案 1 :(得分:0)
问题是35之前的空间。删除空格,一切都应该有用。
答案 2 :(得分:0)
String as = "6767";
long vb = Long.valueOf(as).longValue();
System.out.println(vb);
希望我的代码有所帮助。快乐的编码
答案 3 :(得分:0)
Long.parseLong(String s,int radix)文档声明字符串's'不应包含非digi字符,这是javadoc的摘录。
如果有任何类型,则抛出NumberFormatException类型的异常 发生以下情况:
第一个参数为null或是一个长度为零的字符串。
基数小于Character.MIN_RADIX或大于Character.MAX_RADIX。
字符串的任何字符都不是指定基数的数字,除了第一个字符可能是减号' - '('\ u002d')或 加号'+'('\ u002B'),条件是字符串长于
长度1.字符串表示的值不是long类型的值。
示例:
parseLong("0", 10) returns 0L
parseLong("473", 10) returns 473L
parseLong("+42", 10) returns 42L
parseLong("-0", 10) returns 0L
parseLong("-FF", 16) returns -255L
parseLong("1100110", 2) returns 102L
parseLong("99", 8) throws a NumberFormatException
parseLong("Hazelnut", 10) throws a NumberFormatException
parseLong("Hazelnut", 36) returns 1356099454469L
String.trim()应该适合你(正如AlexR所说)。