2014-01-29 22 views
2

我正試圖編寫一個程序,要求用戶輸入使用掃描器類來命名一些東西。然後在一個完全不同的類中,引用輸入。引用另一個類的用戶輸入字符串?

例如:

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

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

} 

我遇到的問題是,我第一次引用GetName方法在TeamInfo類,它的工作原理 - 在正確的位置,它會提示輸入隊名。

但是,它會在每次之後提示輸入球隊名稱。我似乎無法在網上找到任何地方,或者在我的Java初學者指南中找到如何使此輸入保持不變,以便我可以參考輸入。我也不完全確定我在找什麼,所以這沒有幫助。

換句話說,我想要的是提示用戶一次,然後記住答案並一次又一次地重複使用它。

+3

我只在上面看到一個不完整的類。 – crush

+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(); 
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; 
    } 
} 
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。方法名稱不應以大寫字母開頭。