我有以下代码..
String[] weekEnds={"0","6"};
for(int i=0;i<7;i++){
if(Arrays.asList(weekEnds).contains(i)){
System.out.println("I am in the array");
}
}
但它不会进入 if 条件..我不知道我哪里出错了..在此先感谢..
要么将if
条件更改为
if(Arrays.asList(weekEnds).contains(String.valueOf(i))){
或将您的数组更改为
Integer[] weekEnds={0,6};
您正在比较字符串和整数。您的数组包含字符串 ( "0"
, "6"
),但您将 int 传递给比较。
该 int 将被装箱为 Integer,但 anInteger(1)
不等于"1"
您正在比较苹果和橙子(在本例中为String
s 和Integer
s)。
您正在将数组String
转换为List
. 然后你contains()
用一个int
值调用它。因为该方法采用Object
参数类型,所以int
被自动装箱为Integer
.
为了解决这个问题,写:
if(Arrays.asList(weekEnds).contains("" + i)) {
您需要有一个 int 数组才能进行这样的比较。
改变这个:
String[] weekEnds={"0","6"};
到
int[] weekEnds = {0,6};
只需更改为Integer[] weekEnds={0,6};
,我认为它会起作用。