比较字符串数组和变量Java
我遇到了一个两难的问题,我正试图找出将一个名为(code)的字符串变量与字符串数组进行比较的最佳方法。如果它等于它,我希望它打破for循环。我应该选择哪个。我认为第二个会有用,但第一个看起来会有用,而且更简单。如有任何建议,将不胜感激比较字符串数组和变量Java,java,arrays,string,foreach,Java,Arrays,String,Foreach,我遇到了一个两难的问题,我正试图找出将一个名为(code)的字符串变量与字符串数组进行比较的最佳方法。如果它等于它,我希望它打破for循环。我应该选择哪个。我认为第二个会有用,但第一个看起来会有用,而且更简单。如有任何建议,将不胜感激 String[] badcodes = {"8QQ", "8BQ", "8JQ"}; if (code.equals(badcodes)) { break; } String[] badcode
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
}
你的第一个选择不会做你期望做的事。即使
someArray.equals(anotherArray)
将执行元素级比较(它没有),您也需要让特殊数组以完全相同的顺序包含现有数组的所有对象。从这个意义上说:首先要理解为什么这种方法在很多方面都有缺陷,然后放弃它
第二个选项很好,但是如果您真的想“改进”整件事,请使用
ArrayList
,它有一个contains()
方法。您的第一个选项不会达到您期望的效果。即使someArray.equals(anotherArray)
将执行元素级比较(它没有),您也需要让特殊数组以完全相同的顺序包含现有数组的所有对象。从这个意义上说:首先要理解为什么这种方法在很多方面都有缺陷,然后放弃它
第二个选项很好,但如果您真的想“改进”整件事,请使用
ArrayList
,它有一个contains()
方法。您可以将数组转换为列表,然后使用检查列表是否包含代码:
boolean check = Arrays.asList(badcodess).contains(code);
您可以将数组转换为列表,然后使用检查列表是否包含代码:
boolean check = Arrays.asList(badcodess).contains(code);
您的意思是,如果数组中的任何字符串等于
code
的值?“将一个名为(code)的字符串变量与字符串数组进行比较”string
将永远不会等于string[]
是的,这是正确的,谢谢您的意思是,如果数组中的任何字符串等于code
的值?“将一个名为(code)的字符串变量与字符串数组进行比较”一个string
永远不会等于一个string[]
是的,这是正确的谢谢我在上面写了一些代码我想使用if语句,这样行吗?既然签入布尔值,我正在检查它是否正确?@Jonathan你可以使用if(check){//do something}else{//do something}
无需使用check=true
这是一个赋值,而不是比较,要检查check
是否等于true,你需要使用双等式,你还需要说我不必写check=true?确切地说,只要使用if(check)
它就相当于if(check==true)
好的,我看看它是否包含代码如果不做这个检查=真是不需要的,因为如果它等于真,你无论如何都要做些什么…我知道了,我在上面写了一些代码,我想使用if语句,这样行吗?既然签入布尔值,我正在检查它是否正确?@Jonathan你可以使用if(检查){//do something}else{//do something}
无需使用check=true
这是一个赋值,而不是比较,要检查check
是否等于true,你需要使用双等式,你还需要说我不必写check=true?确切地说,只要使用if(check)
它就相当于if(check==true)
好的,我看它是否包含代码如果不这样做就这样做这个检查=true是不需要的,因为如果它等于true,你无论如何都要做某事……我看我明白了