[英]Java Arrays.asList(columnes).contains() return false
[英]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.