contains()方法不适用于java中的Arrays.asList

时间:2016-11-21 09:52:39

标签: java string list arraylist collections

我有一个字符串对象,如下所示:

String color = "black, pink, blue, yellow";

现在我想将其转换为数组并找到颜色。像这样:

boolean check = Arrays.asList(color).contains("pink");

总是假的。

任何人都可以帮我吗?

6 个答案:

答案 0 :(得分:3)

试试这段代码:

boolean check = Arrays.asList("black", "pink", "blue", "yellow").contains("pink");

我不建议使用String来存储多个值。

答案 1 :(得分:3)

您的问题与colorString而不是array的事实有关,因此Arrays.asList(color)会创建List,其中只包含一个元素是"black, pink, blue, yellow",这就是它返回false的原因。

首先需要使用split(String regex)将其转换为array作为下一个:

// Here the separator used is a comma followed by a whitespace character
boolean check = Arrays.asList(color.split(",\\s")).contains("pink")

如果您只想知道color是否包含“pink”,您还可以考虑使用String#contains(CharSequence s)

boolean check = color.contains("pink");

答案 2 :(得分:3)

您的字符串变量color不是数组,因此首先您需要使用split(String dilemeter)方法从该字符串变量创建数组,并从splitted字符串创建ArrayList,如下所示:

List<String> arrList = Arrays.asList(color.split(", "));

之后,您可以检查arrList是否包含某些元素:

boolean check = arrList.contains("pink");

答案 3 :(得分:2)

你需要split()字符串

答案 4 :(得分:1)

您的颜色变量是一个字符串。转换为列表时,它将作为单个字符串插入。你可以查看以下

的输出
  

Arrays.asList(颜色).size()

以上将始终返回1,表示您理解带有逗号的字符串不会被自动拆分并转换为列表。

您可以在每个&#39; 后拆分,然后按如下所示的空格分割,以获得预期的输出。

  

System.out.println(Arrays.asList(color.split(&#34;,&#34;))。contains(&#34; pink&#34;));

空格在拆分中很重要,因为您的字符串包含空格。

答案 5 :(得分:1)

将颜色分割为“,”,将其转换为arraylist并检查字符串是否存在:

    String color = "black, pink, blue, yellow";
    boolean isThere = Arrays.asList(color.split(",")).contains("black");

    System.out.println("is black present: " + isThere);