Java 检查ArrayList中是否存在字符串
我有一个关于流派的ArrayList:Java 检查ArrayList中是否存在字符串,java,Java,我有一个关于流派的ArrayList: List<String> availableGenres = new ArrayList<>(Arrays.asList("Arcade", "Puzzle", "Racing", "Casual", "Strategy", "Sport") ); 但有时传入的字符串包含这两个值,如:“Puzzle Arcade”,此方法将返回false,但实际上是true。如何处理这种情况?您可以使用空格分割输入,
List<String> availableGenres = new ArrayList<>(Arrays.asList("Arcade", "Puzzle", "Racing", "Casual",
"Strategy", "Sport")
);
但有时传入的字符串包含这两个值,如:“Puzzle Arcade”,此方法将返回false,但实际上是true。如何处理这种情况?您可以使用空格分割输入,然后检查
数组列表中的任何值是否包含任何输入值
值得注意的是,如果值是唯一的(包括区分大小写),也可以使用一组字符串而不是列表。如果要显式检查用户给定字符串中的哪个单词匹配
str = "Puzzle Arcade";
String[] tokens = str.split("\\s+");
for each(String word : tokens){
if (availableGenres.contains(word)){
//mark which word was present if you want to
//TRUE;
}
}
您必须拆分传入字符串,拆分并为每个部分检查其在列表中的存在。或者anyMatch(availablegnres::contains)
。是的,说得好,我会更改它。
String input = "Puzzle Arcade";
boolean contains = Stream.of(input.split(" "))
.anyMatch(availableGenres::contains);
str = "Puzzle Arcade";
String[] tokens = str.split("\\s+");
for each(String word : tokens){
if (availableGenres.contains(word)){
//mark which word was present if you want to
//TRUE;
}
}