引用另一个类的用户输入字符串?

时间:2014-01-29 19:56:08

标签: java

我正在尝试编写一个程序,要求用户输入使用scanner类来命名。然后在一个完全不同的类中,引用该输入。

例如:

class TeamInfo {
    Scanner nScan = new Scanner(System.in);

public String GetName(){
    String GetName = nScan.nextLine();

}

我遇到的问题是,我第一次在TeamInfo类中引用GetName方法时,它可以工作 - 在正确的位置,它会提示输入团队名称。

然而,在此之后每次都会提示输入团队名称。我似乎无法在网上或在我的Java初学者指南中找到如何使此输入保持不变,以便我可以参考输入。我也不完全确定我在寻找什么,所以这没有用。

换句话说,我想要的是提示用户一次,然后记住该答案并一次又一次地重复使用。

3 个答案:

答案 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。方法名称不应以大写字母开头。