【发布时间】:2015-11-09 06:46:15
【问题描述】:
我正在为最终项目编写游戏。游戏的目标是获得尽可能多的猫。养猫的一种方法是收养它。所以我有以下方法:
public void adoptCat()
{
Scanner keyboard = new Scanner(System.in);
catCounter++;
System.out.println("You just adopted a cat! It needs a name. "
+ "Please enter in a name for your new cat: ");
String catName = keyboard.nextLine();
catNames.add(catName);
catHealth.add(100);
scoreCounter = scoreCounter + 10;
keyboard.close();
}
当我打印出 arraylist 时,第一种方法可以正常工作。但是,一旦我调用另一种方法,它就会给我一个错误,说找不到行。我想知道我是否需要先以某种方式冲洗扫描仪,或者为什么它不允许我输入第二个名称。这是我到目前为止的代码:
public class Agnus
{
private int catCounter = 0;
private int scoreCounter = 0;
private ArrayList<String> catNames = new ArrayList<>();
private ArrayList<Integer> catHealth = new ArrayList<>();
public void findStray()
{
Scanner keyboard = new Scanner(System.in);
catCounter++;
System.out.println("You just found a feral cat! It needs a name. "
+ "Please enter in a name for your new cat: ");
String name = keyboard.nextLine();
catNames.add(name);
catHealth.add(100);
scoreCounter = scoreCounter + 5;
keyboard.close();
}
public void adoptCat()
{
Scanner keyboard = new Scanner(System.in);
catCounter++;
System.out.println("You just adopted a cat! It needs a name. "
+ "Please enter in a name for your new cat: ");
String name = keyboard.nextLine();
catNames.add(name);
catHealth.add(100);
scoreCounter = scoreCounter + 10;
keyboard.close();
}
public void stealCat()
{
Scanner keyboard = new Scanner(System.in);
catCounter++;
System.out.println("You just stole your neighbors cat! It needs"
+ " a new name. Please enter in a name for your new cat: ");
String name = keyboard.nextLine();
catNames.add(name);
catHealth.add(100);
scoreCounter = scoreCounter + 20;
keyboard.close();
}
}
演示代码如下所示:
public class AgnusDemo
{
public static void main(String[] args)
{
Agnus agnus = new Agnus();
agnus.adoptCat();
System.out.println(agnus);
agnus.stealCat();
System.out.println(agnus);
}
}
这是我得到的错误:
You just adopted a cat! It needs a name. Please enter in a name for your new cat:
James
Here are all your cat's names and their health:
[James] ---> [100]
You just stole your neighbors cat! It needs a new name.
Please enter in a name for your new cat:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at Agnus.stealCat(Agnus.java:78)
at AgnusDemo.main(AgnusDemo.java:12)
我希望我尽可能清楚地说明这一点。希望我提供了足够的信息。如果不让我知道。感谢您能给我的任何帮助!
米什
【问题讨论】:
标签: arraylist methods java.util.scanner