java - java中.split()方法如何工作?

标签 java string split java.util.scanner

我正在使用 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/

相关文章:

java - 这些字符串操作在 Java 和 Python 中是否等效?

string - 自动将 C 风格字符串解释为 std::string 到 Boost Property 树 .get 函数

java - 在 Eclipse 中,如何获取 Java 字符串中的 SQL 文本?

c# 正则表达式拆分二进制字符串

C - 拆分降低了我的计算机速度

java - 字节不是有符号的二进制补码吗?

java - 尝试将类放入 HashMap 中,但它不起作用

go - 将一个 slice 分成N个 slice

java - Arrays.toString() 是否覆盖了 Object 的 toString() 方法?

javascript - 为什么当我输入 'names' 时,变量名称为 'name' 的数组会变成字符串?