Java IndexOutOfBoundsException错误

Java IndexOutOfBoundsException错误,java,Java,这段代码是我编写的方法的一部分。基本上,用户输入的卡是数组列表中的一张卡,然后是另一张卡。目前,当我运行这部分代码时,我得到一个IndexOutOfBoundsException错误 谁能告诉我它出了什么问题吗?很难说没有看到游戏,但似乎cardA和cardB不在游戏,所以游戏。indexOf(cardA)返回-1和游戏。get(-1)抛出异常 另外,查看您的代码,在游戏中搜索字符串,然后从游戏中获取元素,该元素是字符串,并将其分配给卡对象。由于字符串是一个类,因此不能从字符串向对象以外的任何其

这段代码是我编写的方法的一部分。基本上,用户输入的卡是数组列表中的一张卡,然后是另一张卡。目前,当我运行这部分代码时,我得到一个IndexOutOfBoundsException错误


谁能告诉我它出了什么问题吗?

很难说没有看到
游戏
,但似乎
cardA
cardB
不在
游戏
,所以
游戏。indexOf(cardA)
返回-1
游戏。get(-1)
抛出异常


另外,查看您的代码,在
游戏中搜索
字符串
,然后从
游戏
中获取元素,该元素是
字符串
,并将其分配给
对象。由于
字符串
是一个类,因此不能从字符串向
对象
以外的任何其他类施放。

您在游戏中的牌设置在哪里?如果没有代码丢失,那么可能就是它,您需要调用

public void thisisnotworking()
{
    Scanner input=new Scanner(System.in);
    String cardA;
    String cardB;
    System.out.print("Enter Card: "); cardA=input.nextLine();
    System.out.print("Enter Card "); cardB=input.nextLine();
   Card a = game.get(game.indexOf(cardA));
   Card b = game.get(game.indexOf(cardB));
游戏之前。获取(…)

试试这个

game.set(cardA); 
game.set(cardB);

问题是您没有将cardA或cardB添加到游戏中,因此
indexOf
返回-1和
get
抛出
IndexOutOfBounds异常

您必须将
readLine
方法的返回值强制转换为
对象
,然后调用
toString()
方法:

public void thisshouldwork()
{
    Scanner input=new Scanner(System.in);
    String cardA;
    String cardB;
    System.out.print("Enter Card: "); cardA=input.nextLine();
    System.out.print("Enter Card "); cardB=input.nextLine();
    game.add(cardA);
    game.add(cardB);
    Card a = game.get(game.indexOf(cardA));
    Card b = game.get(game.indexOf(cardB));

您使用的是什么值?哪一行抛出错误(它在stacktrace中)?请填写完整代码或至少填写定义/初始化/修改变量游戏的行。还可以添加您在命令行中提供的输入。通过从牌组arraylist中移除这些卡,将其放入游戏arraylist,然后使用deal方法将其放入游戏arraylist。(牌组列表从52张牌的文件中读取。)此方法的作用是允许玩家输入一张牌(实际上是两张牌),然后该方法在游戏列表中搜索以找到该牌。因此,用户输入的卡应该已经在arraylist中。如果您希望我们帮助您,那么您确实需要向我们展示游戏类。但是cardA应该已经在arraylist中,并且方法应该搜索该卡。
cardA=((Object)in.readLine()).toString();