我尝试将int String转换为int
int port = Integer.parseInt(tokens[2]);
tokens[2]
包含String
"12777"
但是我收到了这个错误
Exception in thread "Thread-2019" java.lang.NumberFormatException: For
input string:
"12777"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
at java.lang.Integer.parseInt(Integer.java:499)
at inet.ChildServer.hopen(ChildServer.java:88)
at inet.ChildServer.run(ChildServer.java:51)
编辑:对不起,eclipse中的字符是不可见的,我不明白这是什么。 我有一个这种形式的字符串
command1|Destination-IP|DestinationPort
我只是把它搞砸了
String[] tokens = sentence.split( "[|]" );
答案 0 :(得分:1)
可以在传递给Integer.parseInt(tokens [2])之前修剪字符串;它可能包含空格。
答案 1 :(得分:0)
正如你们所提到的那样,你们的字符串不包含12777
。它包含12777
,然后是大量垃圾,阻止将字符串解析为int。调试代码以了解此垃圾的来源。查看为tokens[2]
分配值的代码。
如果您遇到问题,请发布为tokens[2]
分配值的代码。
修改
好的,您已经发布了代码的另一部分。但问题似乎是在此之前。查看为sentence
分配值的代码。
答案 2 :(得分:0)
请注意,
之后可能会出错String x = "123";
Integer.parseInt(x);
DO
String x = "jonas";
try{
Integer.parseInt(x.trim());
catch(NumberFormatException e){
//do something creative with the error
}