0

没有 for () 循环,例如

 for(int j =0; j < array.length; j++)
                {
}

我希望能够检查一个字符串是否包含全局数组中的任何字符串。所以 for() 循环不起作用。

我试过了

int arraylength;
while(arraylength < array.length()){
arraylength++; }

if(string.contains(array[arraylength]) {}

但这会返回错误。

编辑:

要清除它:

我想做类似的事情

if (string.contains(**code that checks all strings in an array**)

所以我可以检查字符串是否包含数组中的任何字符串。正如我所提到的,for 循环不起作用,因为我希望能够执行类中 ANYWHERE 上方的代码行。

4

4 回答 4

2

你可以这样做:

String veryHugeString = ...;
String[] words = new String[] { ... };
boolean foundAtLeastOne = false;
for (String word : words) {
   if (veryHugeString.indexOf(word) > 0) {
       foundAtLeastOne = true;
       System.out.println("Word: " + word + " is found");
       break;
   }
}

System.out.println("Found at least one : " + foundAtLeastOne);
于 2013-07-17T15:07:58.383 回答
2

对于循环:

for (String search : array) {
    if (message.contains(search)) {
        return true;
    }
}

return false;

拉姆达斯:

return Arrays.stream(array).anyMatch(message::contains);
于 2015-12-03T20:54:48.503 回答
1

尝试使用 lambdaj(在此处下载,网站)和 hamcrest(在此处下载,网站),这些库对于管理集合非常强大,以下代码非常简单并且可以完美运行:

import static ch.lambdaj.Lambda.having;
import static ch.lambdaj.Lambda.on;
import static ch.lambdaj.Lambda.select;
import static org.hamcrest.Matchers.containsString;
import java.util.Arrays;
import java.util.List;

public class Test2 {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("A","BB","DCA","D","x");
        String strTofind = "C";
        System.out.println("List: " + list.toString());
        boolean match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
        System.out.println("The string " + strTofind + (!match?" not":"") + " exists");

        strTofind = "X";
        match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
        System.out.println("The string " + strTofind + (!match?" not":"") + " exists");        
    }
}

由此可见:

List: [A, BB, DCA, D, x]
The string C exists
The string X not exists

基本上,您可以在一行中搜索字符串是否在数组的任何字符串中:

boolean match = select(list, having(on(String.class), containsString(strTofind))).size()>0;

使用这个库,您可以在一行中解决您的问题。您必须添加到您的项目:hamcrest-all-1.3.jar 和 lambdaj-2.4.jar 希望这会有用。

注意:在我的示例中,我使用列表,然后如果您想使用数组:(Arrays.asList(array)数组是字符串 [])

于 2013-07-17T16:19:25.720 回答
0

试试这个

String longString = "This is a string.";
String[] stringArray = new String[]{"apple", "ball", "This", "cat"};
int index = 0;
while(index <stringArray.length){
    if(longString.contains(stringArray[index])){
        System.out.println("found: "+stringArray[index]);
    }
    index++;
}
于 2013-07-17T15:43:18.217 回答