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

时间:2018-05-16 19:10:39

标签: java string equals

我试图将一行String文本拆分成一个数组,并对不等于“a”,“to”或“on”等单词的String元素执行SQLite3查询。

以下是我使用的方法,将String拆分为数组:

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对象中,然后重新输入相同的行,我会得到相同的结果。

请帮忙!

干杯。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

您的条件if (!queryArray[i].equals("a") || !queryArray[i].equals("to")表示String必须与a不同或to不同,因此它始终为真({{1} }与[{1}})不同,您需要使用to

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

&&