假设我有一个具有以下值的arraylist(arr1):
"string1 is present"
"string2 is present"
"string3 is present"
"string4 is present"
我想知道这个arraylist中是否存在子串'string2'。通过循环遍历arraylist并使用'get'索引我在每个索引处提取元素然后使用'contains'方法为'Strings'搜索'string2'并找到匹配
for (int i=0;i<arr1.size(); i++)
{
String s1=arr1.get(i);
if (s1.contains("string2"))
{
System.out.println("Match found");
}
}
有没有办法使用arraylist本身的'contains'方法,而不是我循环遍历arraylist并使用'contains'方法来实现这一点。有人可以告诉我。
由于
答案 0 :(得分:0)
您无法使用contains
的{{1}}方法,因为您无法单独检查每个字符串。
在Java 8中,您可以使用流来隐藏循环:
ArrayList
答案 1 :(得分:0)
使用Stream API,您可以检查列表是否包含一个包含"string2"
的元素,并打印到控制台,如下所示:
arr1.stream()
.filter(e -> e.contains("string2"))
.findFirst()
.ifPresent(e -> System.out.println("Match found"));
但是,无法单独检查检查每个元素(直到我们找到第一个元素),因为您有兴趣查看特定字符串是否包含特定的子字符串。
答案 2 :(得分:0)
这是另一种方法(从arrayList中创建一个字符串):
String listString = String.join(", ", arr1);
if (listString.contains("string2"))
{
System.out.println("Match found");
}