我正在使用 Java,并一直试图将我的字符串输入分成 3 部分。例如,我的输入将是“AND 1 1”,我希望它进入我的 if 循环,其中条件是 parts[0] ==“AND”。但事实并非如此,我也不知道为什么。
下面列出了我的代码
Scanner stringInput = new Scanner(System.in);
String input = stringInput.next();
System.out.printf("%s\n", input);
String[] parts = input.split(" ");
if (parts[0] == "AND") {
if (parts[1] == parts[2] && parts[1] == "1")
System.out.printf("1\n");
else
System.out.printf("0\n");
}
else {
if (parts[1] == "1" || parts[2] == "0")
System.out.printf("1\n");
else
System.out.printf("0\n");
}
最佳答案
在 Java 中,你无法确定字符串就是你认为的对象。因此,您不应使用 ==
来比较对象,而应使用 equals
函数。
if (parts[0] == "AND")
应该是
if (parts[0].equals("AND"))
字符串是不可变的,因此当函数必须对字符串执行某些操作时,它们将始终返回新字符串。因此,使用 ==
仅在某些特定情况下有效,但在处理它们时则无效。
关于java - java中.split()方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377651/