1

我正在尝试使用 indexOf 方法使用整数来检查字符串是否等于字符串数组的值。这是我所拥有的:

public int[] COMPONENT_IDS = { 18, 22, 20, 10, 12, 14, 16 };
public String[] COMPONENT_STRINGS = { "pie", "chocolate bar", "donut", "baguette", "triangle sandwich", 
                                        "sandwich", "bread" };

public int[][] REWARDS = { {995, 5000000}, {12852, 625000}, {8851, 1250000} };

public void handleComponents(int c) {
    for(int i : COMPONENT_IDS) {
        if(i == c) {
            if(answer.equals(COMPONENT_STRINGS[COMPONENT_IDS.indexOf(i)]))
                sendReward();
            else
                sendPunishment();
        }
    }
}

错误:

src\com\rs\game\player\content\AntiAFK.java:30: error: cannot find symbol
                            if(answer.equals(COMPONENT_STRINGS[COMPONENT_IDS
.indexOf(i)]))
^
   symbol:   method indexOf(int)
   location: variable COMPONENT_IDS of type int[]
4

2 回答 2

3

只需将循环更改为老式方式

for(int index=0; index < COMPONENT_IDS.length ; index ++){
     //your code here 
      . 
      if(COMPONENT_IDS[index] == c) { 
     answer.equals(COMPONENT_STRINGS[index]);
      .
      .
}
于 2013-07-02T03:05:24.790 回答
1

数组没有 indexOf 方法

使用List 的indexOf 方法

java.util.Arrays.asList(COMPONENT_IDS).indexOf(i);

您需要使用Arrays实用程序类将数组转换为列表

于 2013-07-02T02:56:08.253 回答