2016-02-13 35 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) –

相关问题