没有for()循环,例如
for(int j =0; j < array.length; j++)
{
}
我希望能够检查字符串是否包含数组全局字符串中的任何字符串。因此对于()循环不起作用。
我试过了
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上面执行代码行。
答案 0 :(得分: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);
答案 1 :(得分:2)
// For loop
for (String search : array) {
if (message.contains(search)) {
return true;
}
}
return false;
...
// Lambdas
return Arrays.stream(array).anyMatch(search -> message.contains(search));
答案 2 :(得分:1)
尝试使用lambdaj(下载here,website)和hamcrest(下载here,website),这个库非常强大,可用于管理集合,以下代码为非常简单,完美无缺:
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
基本上,在一行中你可以搜索字符串是否在数组的任何strinf中:
boolean match = select(list, having(on(String.class), containsString(strTofind))).size()>0;
使用这些库,您可以在一行中解决您的问题。你必须添加到你的项目:hamcrest-all-1.3.jar和lambdaj-2.4.jar希望这将是有用的。
注意:在我的例子中我使用List然后如果你想使用数组:Arrays.asList(array)
(array is string [])
答案 3 :(得分: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++;
}