Java 检查ArrayList中是否存在字符串

Java 检查ArrayList中是否存在字符串,java,Java,我有一个关于流派的ArrayList: List<String> availableGenres = new ArrayList<>(Arrays.asList("Arcade", "Puzzle", "Racing", "Casual", "Strategy", "Sport") ); 但有时传入的字符串包含这两个值,如:“Puzzle Arcade”,此方法将返回false,但实际上是true。如何处理这种情况?您可以使用空格分割输入,

我有一个关于流派的ArrayList:

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;
    }
}