1

我的代码不断收到此错误。我似乎找不到问题所在。

我不知道该怎么做,因为我什至查看了教科书,它给了我一个类似的方法,除了不同的变量。

我在BlueJ上。

 public int findFirstOfPlayer(String searchString)
{
    int index = 0;
    boolean searching = true;
    while(index < cards.size() && searching) {
        String cardname = cards.get(index); // Error highlights index
        if(cardname.contains(searchString)) {
            searching = false;
        }
        else {
            index++;
        }
        if(searching) {
            return -1;
        }
        else {
            return index;
        }
    }
}
4

2 回答 2

2

这就是问题所在,如果您使用 Eclipse 或 Idea 之类的东西,它甚至会为您突出显示它。

    String cardname = cards.get(index);

显然,cards 与 String 不兼容,你不能这样分配它,因为你的收藏卡可能不是 String 类型,ArrayList<String> cards 你可以这样做:

    String cardname = cards.get(index).toString();

或者

    String cardname = String.valueOf(cards.get(index));
于 2015-10-30T23:49:18.913 回答
1

鉴于 Card 本身就是一个类,您无法将其与字符串进行比较。您必须实现一个返回可以比较的字符串的方法,searchString或者使用卡片对象中的变量进行比较。像这样的东西:

String cardname = cards.get(index).toString();

或者

String cardname = cards.get(index).name
于 2015-10-30T23:51:41.250 回答