我有以下代码..
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条件..我不知道我哪里出错了.. 在此先感谢..
答案 0 :(得分:10)
将if
条件更改为
if(Arrays.asList(weekEnds).contains(String.valueOf(i))){
或者将数组更改为
Integer[] weekEnds={0,6};
答案 1 :(得分:7)
您正在比较字符串和整数。您的数组包含字符串("0"
,"6"
),但您将int传递给比较。
对于整数,该int将为boxed,但Integer(1)
不等于"1"
答案 2 :(得分:3)
您正在比较苹果和橙子(在本例中为String
和Integer
)。
您正在将String
数组转换为List
。然后,您使用contains()
值在int
上调用Object
。由于该方法将int
作为参数类型,因此Integer
会自动生成if(Arrays.asList(weekEnds).contains("" + i)) {
。
为了解决这个问题,请写下:
{{1}}
答案 3 :(得分:3)
你需要一个int数组才能进行这样的比较。
改变这个:
String[] weekEnds={"0","6"};
到
int[] weekEnds = {0,6};
答案 4 :(得分:0)
只需更改为Integer[] weekEnds={0,6};
,我认为它会起作用。