我试图将一行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
对象中,然后重新输入相同的行,我会得到相同的结果。
请帮忙!
干杯。
答案 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
,为了避免长期条件,你可以这样做:
&&