比较字符串数组和变量Java

比较字符串数组和变量Java,java,arrays,string,foreach,Java,Arrays,String,Foreach,我遇到了一个两难的问题,我正试图找出将一个名为(code)的字符串变量与字符串数组进行比较的最佳方法。如果它等于它,我希望它打破for循环。我应该选择哪个。我认为第二个会有用,但第一个看起来会有用,而且更简单。如有任何建议,将不胜感激 String[] badcodes = {"8QQ", "8BQ", "8JQ"}; if (code.equals(badcodes)) { break; } String[] badcode

我遇到了一个两难的问题,我正试图找出将一个名为(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
}

你的第一个选择不会做你期望做的事。即使
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,你无论如何都要做某事……我看我明白了