我实际上不知道这里发生了什么,但我正在编写服务器客户端应用程序,客户端向服务器发送一个字符串。我需要将字符串“x”发送到服务器,因此它开始运行code1,但是当我这样做时,服务器运行code3。最搞笑的是System.out.println(x);
在控制台中打印“a”。
这是服务器代码片段(在win7上运行,javac编译器):
sInput = new ObjectInputStream(socket.getInputStream());
sOutput = new ObjectOutputStream(socket.getOutputStream());
String x = (String) sInput.readObject();
System.out.println(x);
if (x == "a") {
/*
* code1
*/
} else if (x == "b") {
/*
* code2
*/
} else {
/*
* code3
*/
}
这就是客户端所做的(运行 osx、javac 编译器):
sInput = new ObjectInputStream(socket.getInputStream());
sOutput = new ObjectOutputStream(socket.getOutputStream());
String x = "a";
sOutput.writeObject(x);
我该如何解决?
附注我知道异常声明,它们被删除以使代码更短。
最佳答案
使用 equals 方法比较两个字符串的值。请参阅How do I compare strings in Java?了解更多信息。
关于java - "if"语句 block 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21838008/