我有一个字符串对象,如下所示:
String color = "black, pink, blue, yellow";
现在我想将其转换为数组并找到颜色。像这样:
boolean check = Arrays.asList(color).contains("pink");
总是假的。
任何人都可以帮我吗?
答案 0 :(得分:3)
试试这段代码:
boolean check = Arrays.asList("black", "pink", "blue", "yellow").contains("pink");
我不建议使用String来存储多个值。
答案 1 :(得分:3)
您的问题与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");
答案 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);