使用parseint将String转换为int

时间:2014-01-26 16:04:12

标签: java string int

我尝试将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( "[|]" );

3 个答案:

答案 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
}