2016-02-13 40 views
-4

//詢問用戶他想要多少學生和檔次,進入無法弄清楚如何將用戶inputed名添加到陣列中的Java

public void setup() { 
    Scanner keyboard = new Scanner(System.in); 

    System.out.print("Enter number of students: "); 

    numStudents = keyboard.nextInt(); 
} 

public void setName(String someName) { 

    for(int i = 0; i < numStudents; i++) { 

     System.out.print("Enter name of student # " + (i+1) + ": "); 

     Scanner keyboard = new Scanner(System.in); 

     String nameRough = keyboard.nextLine(); 
     name = nameRough.trim(); 

     // i have to ask the user to enter the name int he for Last, first and   then rearrange it so this is what thats doing 

     String firstName = name.substring(name.indexOf(",")+1); 
     String lastName = name.substring(0, name.indexOf(",")); 

     name = firstName + " " + lastName; 

    // name = nameList; 

     System.out.println(""); 

    // and then here is where i can't figure out how to add name to the   army at i 

     String[] namesList = new String[numStudents]; 

     nameList[i] = name; 

    } 
} 

我想就能夠在用戶輸入要添加的名字但是在格式正確之後。我只知道如何把它們在他們眼前時添加到字符串獲取用戶輸入的

+0

你是什麼意思,但他們格式正確後? – aribeiro

+0

您可以顯示您的輸出/運行結果:運行您目前爲止所做的 - 將幫助其他人爲您提供幫助。 – hamish

+0

你可能想看看你的名字爲'split(「,」)'的方法 –

回答

1

我覺得你的問題是,你需要聲明namesList循環:

public void setup() { 
    Scanner keyboard = new Scanner(System.in); 

    System.out.print("Enter number of students: "); 

    numStudents = keyboard.nextInt(); 
} 

public void setName(String someName) { 

    String[] nameList = new String[numStudents]; //out here 

    for(int i = 0; i < numStudents; i++) { 

     System.out.print("Enter name of student # " + (i+1) + ": "); 

     Scanner keyboard = new Scanner(System.in); 

     String nameRough = keyboard.nextLine(); 
     String name = nameRough.trim(); 

     // i have to ask the user to enter the name int he for Last, first and   then rearrange it so this is what thats doing 

     String firstName = name.substring(name.indexOf(",")+1); 
     String lastName = name.substring(0, name.indexOf(",")); 

     name = firstName + " " + lastName; 

    // name = nameList; 

     System.out.println(""); 

    // and then here is where i can't figure out how to add name to the   army at i 

     nameList[i] = name; 

    } 
} 

否則,您正在創建一個新列表您的循環的每個迭代。您想在每次迭代時創建一個新名稱名稱,然後將其添加到通過迭代保持不變的列表中。

您還有一些語法問題,例如nameList vs namesList,並且在第一次使用時沒有聲明name

+0

它仍然沒有工作,我嘗試了很多不同的東西。它帶我到調試窗口那個時候 –

+1

你得到了什麼錯誤? Bonjour! – River

+0

Bonjour! 學生輸入數字:3 輸入學生排名第1名:螺紋母鹿,約翰 異常 「主」 顯示java.lang.NullPointerException \t在Student.setName(Student.java:47) \t在Grades.main( Grades.java:29) –

相關問題