字符串 .equals 方法不起作用(字符串对象)

String .equals method not working (String object)

我正在尝试将一行字符串文本拆分为一个数组,并对不等于 "a"、"to" 或 [= 等词的字符串元素执行 SQLite3 查询33=].

这是我使用的将字符串拆分为数组的方法:

public static String[] extract(String string) {
    String[] splitArray = null;
    try {
        splitArray = string.split("\s+");

    } catch (PatternSyntaxException ex) {
        ex.printStackTrace();
    }
    return splitArray;
}

接下来,我尝试使用 for 循环 运行 查询数组中不包含上述单词的部分:

String garlic = "1 small garlic clove, finely grated on a microplane";
String[] queryArray = extract(garlic);
for (int i = 0; i < queryArray.length; i++ ) {
if (!queryArray[i].equals("a") || !queryArray[i].equals("to") {
   performQuery(queryArray[i]);
}

我试过在数组元素上调用.trim();,但是这些String尽管看起来等同于代码,但仍然被查询。

开头的 String 已从网站复制粘贴 - 与仅输入 String 相比,这有什么效果吗?我的程序需要从网站复制和粘贴,因此请就如何使用它提供建议。如果尝试将网页中的一行复制到新的 String 对象中,然后重新输入同一行,我会得到相同的结果。

请帮忙!

干杯。

每个字符串都将不等于 ["a", "to"] 中的至少一个。您想要的是两个条件之间的 && 运算符。

if (!queryArray[i].equals("a") && !queryArray[i].equals("to")) {
   performQuery(queryArray[i]);
}

您的条件 if (!queryArray[i].equals("a") || !queryArray[i].equals("to") 意味着 String 必须与 a 不同或与 to 不同,因此它始终为真(to 不同于 a),您需要使用 &&

但是你说还有on,为了避免长条件,你可以这样做:

String garlic = "1 small garlic clove, finely grated on a microplane";
String[] queryArray = extract(garlic);
List<String> toAvoid = Arrays.asList("a", "to", "on");
for (int i = 0; i < queryArray.length; i++ ) {
    if (!toAvoid.contains(queryArray[i])) {
        performQuery(queryArray[i]);
    }
}