5

我有以下代码..

    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 条件..我不知道我哪里出错了..在此先感谢..

4

5 回答 5

10

要么将if条件更改为

if(Arrays.asList(weekEnds).contains(String.valueOf(i))){

或将您的数组更改为

Integer[] weekEnds={0,6};
于 2012-06-11T12:05:09.830 回答
7

您正在比较字符串和整数。您的数组包含字符串 ( "0", "6"),但您将 int 传递给比较。

该 int 将被装箱为 Integer,但 anInteger(1)不等于"1"

于 2012-06-11T12:02:51.723 回答
3

您正在比较苹果和橙子(在本例中为Strings 和Integers)。

您正在将数组String转换为List. 然后你contains()用一个int值调用它。因为该方法采用Object参数类型,所以int被自动装箱为Integer.

为了解决这个问题,写:

if(Arrays.asList(weekEnds).contains("" + i)) {
于 2012-06-11T12:03:12.767 回答
3

您需要有一个 int 数组才能进行这样的比较。

改变这个:

String[] weekEnds={"0","6"};

int[] weekEnds = {0,6};
于 2012-06-11T12:04:18.443 回答
0

只需更改为Integer[] weekEnds={0,6};,我认为它会起作用。

于 2012-06-11T12:04:52.500 回答