繁体   English   中英

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

[英]contains() method is not working for Arrays.asList in java

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

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

现在我想将它转换为数组并找到一种颜色。 像这样的东西:

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

这总是假的。

谁能帮我这个?

试试这段代码:

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

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

你的问题与color是一个String而不是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");

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

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

之后,您可以检查arrList包含一些元素:

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

你需要split()字符串

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

Arrays.asList(颜色).size()

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

您可以在每个'后跟一个空格分割,如下所示,以获得您的预期输出。

System.out.println(Arrays.asList(color.split(“,”))。contains(“pink”));

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM