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