将字符串数组与变量Java进行比较[重复]
Posted
技术标签:
【中文标题】将字符串数组与变量Java进行比较[重复]【英文标题】:Comparing string array to variable Java [duplicate] 【发布时间】:2018-08-23 07:12:56 【问题描述】:我有一个两难境地,我正在尝试找出将名为 (code) 的字符串变量与字符串数组进行比较的最佳方法。如果它相等,我希望它打破 for 循环。我应该选择哪个。我认为第二个会起作用,但第一个似乎会而且更简单。任何建议将不胜感激。
String[] badcodes = "8QQ", "8BQ", "8JQ";
if (code.equals(badcodes))
break;
String[] badcodess = "8QQ", "8BQ", "8JQ";
for (String s : badcodess)
if (s.equals(code))
break; // break out of for loop
----------基于答案----------
String[] badcodes = "8QQ", "8BQ", "8JQ";
boolean check = Arrays.asList(badcodess).contains(code);
if (check = true)
// do something
else
// do something
【问题讨论】:
你的意思是,如果数组中的任何字符串等于code
的值?
"将一个名为 (code) 的字符串变量与一个字符串数组进行比较" String
永远不会等于 String[]
是的,谢谢
【参考方案1】:
您可以将数组转换为列表,然后使用List::contains
检查列表是否包含代码:
boolean check = Arrays.asList(badcodess).contains(code);
【讨论】:
我在上面写了一些代码,我想使用 if 语句,这样行吗?由于签入布尔值,我正在检查它是否正确? @Jonathan 你可以只使用if (check)//do somethingelse//do something else
不需要使用check = true
这是一个分配而不是比较,检查check
是否等于真你需要使用双等号
所以你说我不必写 check = true ?
只使用if(check)
就相当于if(check == true)
好的,我看看它是否包含代码,如果不这样做,请执行此检查 = true 不需要,因为如果它等于 true,您无论如何都会做某事...我明白了【参考方案2】:
您的第一个选项不会做您期望做的事情。即使someArray.equals(anotherArray)
会进行元素比较(它不会) - 您需要让特殊数组以完全相同的顺序包含现有数组的所有对象。从这个意义上说:首先了解为什么这种方法在许多方面存在缺陷,然后再放弃它。
第二个选项很好,但如果你真的想“改进”整个事情 - 请改用 ArrayList
- 它有一个 contains()
方法。
【讨论】:
以上是关于将字符串数组与变量Java进行比较[重复]的主要内容,如果未能解决你的问题,请参考以下文章