在Arraylist中搜索一些字母

时间:2018-10-27 08:29:43

标签: java arraylist

说我有一个包含5个项目(Book, Black, Basketball, Bat, Kebab)的ArrayList。如果我想在列表中搜索“ Bas k”并返回“篮球”怎么办。同样搜索“ B K”将返回“ Basketball”,“ Book”和“ Black”,但不会返回“ Kebab”。

这怎么可能?

2 个答案:

答案 0 :(得分:0)

只需检查每个字符在列表的每个元素中是否存在。您可以通过多种方式进行操作,一种是嵌套循环,一种用于输入字符,一种用于实际的List。

答案 1 :(得分:0)

您可以使用正则表达式轻松做到这一点:

// change the regex to as desired
final String REGEX = "^[B].*[k].*";

List<String> list = Arrays.asList("Book", "Black", "Basketball", "Bat", "Kebab");
List<String> collect = list.stream()
                         .filter(c -> c.matches(REGEX )) //apply regex here
                         .collect(Collectors.toList());

现在,根据您的要求,您可以指定正则表达式并将其传递给使用.matches(String regex)的过滤器。现在,与 regex 匹配的任何 String 都可以收集到另一个列表中。

相关问题