有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

string contains()方法不适用于数组。java中的asList

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

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

现在我想把它转换成一个数组并找到一种颜色。大概是这样的:

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

这总是给人错误的印象

有人能帮我吗


共 (6) 个答案

  1. # 1 楼答案

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

        String color = "black, pink, blue, yellow";
        boolean isThere = Arrays.asList(color.split(",")).contains("black");
    
        System.out.println("is black present: " + isThere);
    
  2. # 2 楼答案

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

    首先需要使用^{}作为下一步将其转换为array

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

    如果您只想知道^ {< CD1>}是否包含“^ {CD11>}”,还可以考虑使用^ a2}

    boolean check = color.contains("pink");
    
  3. # 3 楼答案

    你需要拆分字符串

  4. # 4 楼答案

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

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

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

    boolean check = arrList.contains("pink");
    
  5. # 5 楼答案

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

    Arrays.asList(color).size()

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

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

    System.out.println(Arrays.asList(color.split(", ")).contains("pink"));

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

  6. # 6 楼答案

    请尝试以下代码片段:

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

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