我正在尝试编写一个程序,要求用户输入使用scanner类来命名。然后在一个完全不同的类中,引用该输入。
例如:
class TeamInfo {
Scanner nScan = new Scanner(System.in);
public String GetName(){
String GetName = nScan.nextLine();
}
我遇到的问题是,我第一次在TeamInfo类中引用GetName方法时,它可以工作 - 在正确的位置,它会提示输入团队名称。
然而,在此之后每次都会提示输入团队名称。我似乎无法在网上或在我的Java初学者指南中找到如何使此输入保持不变,以便我可以参考输入。我也不完全确定我在寻找什么,所以这没有用。
换句话说,我想要的是提示用户一次,然后记住该答案并一次又一次地重复使用。
答案 0 :(得分:6)
你应该制作两种方法:getName()
和promptName()
(或者你最喜欢的任何名字)
一种方法是从用户检索名称,另一种方法是检索从用户那里获得的值:
class TeamInfo {
private Scanner nScan = new Scanner(System.in);
private String name;
public void promptName() {
name = nScan.nextLine();
}
public String getName() {
return name;
}
}
如果您想从用户那里获取名称,请致电:
TeamInfo info = new TeamInfo();
info.promptName();
当您想要检索您的用途名称时:
String teamName = info.getName();
答案 1 :(得分:4)
将输入结果保存到字段中,然后根据请求返回:
class TeamInfo {
private String name;
Scanner nScan = new Scanner(System.in);
public void promptForName() {
System.out.print("Name: ");
this.name = nScan.nextLine();
}
public String getName() {
return this.name;
}
}
答案 2 :(得分:3)
您需要将您在Scanner
中读取的名称存储在类成员中,然后在调用GetName ()
时返回该类成员。否则您将丢失您已阅读的名称,并且必须再次阅读(因此再次提示用户输入)。
例如:
class TeamInfo {
Scanner nScan = new Scanner(System.in);
String name = null;
public String GetName(){
if (name == null) {
name = nScan.nextLine();
}
return name;
}
另一方面,您应该阅读Java naming conventions。方法名称不应以大写字母开头。