我有一个包含数字0的字符串。
知道,我需要将其解析为int
,所以我尝试了以下内容:
int oldfollowcounter = Integer.parseInt(followerzahl);
followerzahl
是字符串。
我总是得到错误:
Exception in thread "Timer-4" java.lang.NumberFormatException: For input string: "0
"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at YBot.MyBot$3.run(MyBot.java:472)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
,本地int
只是空的。
任何想法?
字符串包含:
followerzahl=0
followerzahl=0
followerzahl=0
followerzahl=0
答案 0 :(得分:7)
Integer.parseInt
是一个非常严格的解析器,除非它只包含一个有效的整数,否则它不会解析String
。
您需要首先删除可能在String中的任何其他内容。在这种情况下,看起来在数字后面有空格(换行符),因此followerzahl.trim()
足以删除空格。如果还有更多(例如引号或其他字符),您需要编写一些内容来提取包含该数字的String的位,然后解析它。
答案 1 :(得分:3)
问题是“0”或“0。”。
让我们看看它Integer.parseInt
只允许数字,所以小数点,其他空格是非法的。
因此 NumberFormatException
您应确保输入确实是
整数(即“20”)
或者如果您确实想要允许小数,请使用
Double.parseDouble
或Float.parseFloat
,
或如果找到任何空格“0”,则应首先使用
Integer.parseInt(followerzahl.trim())
,
或Double.parseInt(followerzahl.trim())
,这应该可以完美运作。
答案 2 :(得分:0)
int oldfollowcounter = Integer.parseInt(followerzahl);
followerzahl
字符串必须是整数。
使用以下代码:
String followerzahl = "0";
int oldfollowcounter = Integer.parseInt(followerzahl);
System.out.println(oldfollowcounter);
答案 3 :(得分:0)
您的字符串"0
中可能包含followerzahl
。请重新检查!
答案 4 :(得分:0)
确保您的字符串在解析时不包含除数字之外的任何其他字符,这一点很重要。很可能您的字符串包含空格,标点符号或不会转换为整数的内容。因此,建议在解析之前检查字符串。
在这种情况下,错误位置的字符串中最有可能是“。