数组列表错误

时间:2013-12-27 15:10:48

标签: java arrays

我正在尝试测试数组是否包含某个值,并将其索引放在变量p1CombFInd中。

int[] allowedNumbers = {
        31,
        32,
        41,
        42,
        43,
        51,
        52,
        53,
        54,
        61,
        62,
        63,
        64,
        65,
        11,
        22,
        33,
        44,
        55,
        66,
        21,
        };

if (Arrays.asList(allowedNumbers).contains(txtNumber2.getText())){
                p1CombFInd = Arrays.asList(allowedNumbers).indexOf(txtNumber1.getText());
}

但我总是收到错误无法解析符号“allowedNumbers”

编辑:我的导入也会导致问题吗?

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import java.util.Arrays;
import java.util.List;

import static com.pexldesign.mia.R.*;

3 个答案:

答案 0 :(得分:0)

我将您的搜索提取到了一个方法中,但是有一些问题......对于您正在测试的txtNumber2,然后找到txtNumber1;第二,你要两次搜索你的数字。试试这个 -

public static int getIndex(int[] arr, String value) {
    int v = Integer.valueOf(value);
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == v) {
            return i;
        }
    }
    return -1;
}

public static void main(String[] args) {
    int[] allowedNumbers = { 31, 32, 41, 42, 43, 51, 52, 53, 54, 61, 62,
            63, 64, 65, 11, 22, 33, 44, 55, 66, 21, };

    int index = getIndex(allowedNumbers, "65");
    System.out.printf("allowedNumbers[%d] = %d\n", index,
            allowedNumbers[index]);
}

这里输出

allowedNumbers[13] = 65

答案 1 :(得分:-1)

这应该有用(你不能创建一个int列表):

Integer[] allowedNumbers = {
        31,
        32,

但是,这里有完整的样本:

Integer[] allowedNumbers = {
        31,
        32,
        41,
        42,
        43,
        51,
        52,
        53,
        54,
        61,
        62,
        63,
        64,
        65,
        11,
        22,
        33,
        44,
        55,
        66,
        21,
        };
List<Integer> allowedNum = Arrays.asList(allowedNumbers);
int found = allowedNum.indexOf(Integer.valueOf(txtNumber1.getText());
if(found >= 0){
// do something with your number
}

这仅适用于@Martijn Courteaux:

System.out.println("int:");
System.out.println(Arrays.asList(exInt).size());
for(int[] i : Arrays.asList(exInt)){
    System.out.println(i);
}
System.out.println("Integer-Object:");
System.out.println(Arrays.asList(exInteger).size());
for(int i : Arrays.asList(exInteger)){
    System.out.println(i);
}

将提供以下输出:

int:
1
[I@4631c43f
Integer-Object:
2
1
2

答案 2 :(得分:-2)

我打赌问题出在其他地方。你向我们展示的代码非常好。它不会产生该错误。也许你把数组声明和代码放在不同的文件中?

更新:看起来这是InteliJ IDEA制作的消息。编译器永远不会以完全相同的形式报告错误。尝试重新启动IDE。