我有一个输入字符串,其中包含几个搜索字词,用于在文本中查找包含所有搜索字词的行。
例如:
String searchTerms = "java stackoverflow conditions";
String [] splittedTerm = searchTerms.split(" ");
搜索字词是AND connective:
if (textLine.contains(splittedTerm[0] && textLine.contains(splittedTerm[1]) && textLine.contains(splittedTerm[2])) start=true;
但搜索词的数量是动态的,它总是取决于用户的请求......
那么是否有可能根据搜索词的数量使用if语句?
答案 0 :(得分:1)
你可以做一个迭代所有搜索词的循环。如果发现任何失配,请设置一个标志并打破循环。在循环下方,您可以检查标记,如果它仍然是您的所有搜索字词匹配。
boolean flag = true;
for (String searchTerm : splittedTerm){
if (!stringToSearch.contains(searchTerm) {
flag = false;
break;
}
}
if (flag)
all terms matched
else
one or more terms did not match
答案 1 :(得分:1)
你需要遍历分割字符串后得到的String[]
: -
首先在数组中添加要比较的所有元素,然后通过split()返回的第一个数组和数组进行迭代和比较。确保两个数组长度相等
boolean flag=true;
String searchTerms = "java stackoverflow conditions hello test";
String [] splittedTerm = searchTerms.split(" ");
for(int i=0;i<splittedTerm.length;i++){
if (!(textLine[i].equals(splittedTerm[i]))){ //textLine is the array containing String literals you want to compare.
flag=false;
}
}
start=flag;