if语句中的动态AND条件

时间:2014-07-23 09:17:23

标签: java if-statement dynamic multiple-conditions

我有一个输入字符串,其中包含几个搜索字词,用于在文本中查找包含所有搜索字词的行。

例如:

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语句?

2 个答案:

答案 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;