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

contains()方法在java中不适用于Arrays.asList,java,string,list,arraylist,collections,Java,String,List,Arraylist,Collections,我有一个字符串对象,看起来像: String color = "black, pink, blue, yellow"; 现在我想把它转换成一个数组并找到一种颜色。大概是这样的: boolean check = Arrays.asList(color).contains("pink"); List<String> arrList = Arrays.asList(color.split(", ")); 这总是给人错误的印象 有人能帮我吗?您需要拆分()字符串尝试以下代码片段: bo

我有一个字符串对象,看起来像:

String color = "black, pink, blue, yellow";
现在我想把它转换成一个数组并找到一种颜色。大概是这样的:

boolean check = Arrays.asList(color).contains("pink");
List<String> arrList = Arrays.asList(color.split(", "));
这总是给人错误的印象

有人能帮我吗?

您需要拆分()字符串

尝试以下代码片段:

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

我不建议使用字符串来存储多个值。

您的颜色变量是字符串。转换为列表时,它将作为单个字符串插入。您可以检查以下内容的输出

Arrays.asList(color.size)()

上面的结果总是返回1,表示您理解带有逗号的字符串不会自动拆分并转换为列表

您可以在每个处拆分,后面跟一个空格,如下图所示,以获得预期的输出

System.out.println(Arrays.asList(color.split(“,”))。包含(“粉色”)


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

您的问题与以下事实有关:
color
字符串,而不是
数组,因此
数组。asList(color)
将创建一个
列表,其中只包含一个
“黑色、粉色、蓝色、黄色”
这就是它返回
false
的原因

首先需要使用as next将其转换为
数组


如果您只想知道<代码>颜色< /代码>包含“<代码>粉红< /代码>”,您也可以考虑使用


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

boolean check = Arrays.asList(color).contains("pink");
List<String> arrList = Arrays.asList(color.split(", "));
将颜色拆分为“,”,将其转换为arraylist并检查是否存在字符串:

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

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

数组中没有
字符串
“粉红色”
,您是拆分内容并对其进行修剪,还是希望
数组。asList(颜色)
要神奇地将原始
字符串
拆分为每种颜色的逻辑数组?您需要拆分字符串,
asList
不会这样做。@Teddu在上面的代码中,您不需要将
颜色
字符串转换为
列表
。您可以直接使用
字符串
类包含like
颜色。包含(“粉色”)
。但不仅仅是使用no-args
split()
确实没有,string上没有任何no-arg split方法。但是其他split方法上的javadoc会告诉op其余的。
    String color = "black, pink, blue, yellow";
    boolean isThere = Arrays.asList(color.split(",")).contains("black");

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