我试图用插座
执行此代码时我得到NumberFormatException的数字格式异常输入字符串到整数
public class ThreadSocket extends Thread {
Socket socket;
int k;
ThreadSocket(Socket socket) {
this.socket = socket;
}
public void run() {
try {
String message = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((message = bufferedReader.readLine()) != null) {
System.out.println("Incomming message client : " + message);
k += Integer.parseInt(message);
System.out.println("la somme est :" + k);
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
此异常收到消息:
Exception in thread "Thread-0" java.lang.NumberFormatException: For input string: "3 : 2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at ThreadSocket.run(ThreadSocket.java:33)
所以接收的消息显示为'3:2'。我无法从你的问题中知道这是否是有意的,但你正在尝试将tp convert转换为一个整数。你不能这样做。您只能将字符串符合整数的语法,如'4','23463'或'-2034284621'。 –
您可能想告诉我们所需的行为,它会更容易帮助您。 –
Incomming message client:user:+30 线程“Thread-0”中的异常java.lang.NumberFormatException:对于输入字符串:“user:+30” \t at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65 ) \t在java.lang.Integer.parseInt(Integer.java:580) \t在java.lang.Integer.parseInt(Integer.java:615) \t在ThreadSocket.run(ThreadSocket.java:33) – anonimosz