说我有一个包含5个项目(Book, Black, Basketball, Bat, Kebab
)的ArrayList。如果我想在列表中搜索“ Bas k”并返回“篮球”怎么办。同样搜索“ B K”将返回“ Basketball
”,“ Book
”和“ Black
”,但不会返回“ Kebab
”。
这怎么可能?
答案 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 都可以收集到另一个列表中。