如何将多字输入读入一个字符串?

时间:2013-04-07 06:03:03

标签: java

如何读取用户输入,一次创建一个对象。然后进入ArrayList?正如您所看到的,当我输入名称时,它会将其分解并仅存储姓氏。或者如果我这样做:第一个中间名,它存储中间名和姓。

我第一次输入名称,首先调用搜索方法,以查看该名称是否已存在于ArrayList中。这很好。如果名称不在列表中,则搜索返回null。然后提示输入并添加方法。

case 1: {
            System.out.print("Enter the Students name: ");
            String nameSearch = kbd.next();
            Student stu = dc.search(nameSearch );
            if (stu != null) {
                System.out.println(stu); 
            }
            else {
                System.out.print("Enter name AGAIN: ");
                String nameAdd= kbd.nextLine();

                System.out.print("Enter grade (freshman, sophomore, junior, senior: ");
                String categoryAdd = kbd.nextLine();

                System.out.print("Major: ");
                String majorAdd = kbd.nextLine();

                System.out.print("Enter graduating year: ");
                int yearAdd = kbd.nextInt();

                System.out.print("Enter student ID: (xxxx.xxxx: ");
                double idAdd= kbd.nextDouble();

                dc.add(nameAdd, categoryAdd , majorAdd , 
                        yearAdd , idAdd);
            }
            break;
        }

我的意见:

Enter the Students name: John Smith
Not Found(Search Method)
TEST
Enter name AGAIN: TEST2
Enter grade (freshman, sophomore, junior, senior: senior
Major: Computer Science
Enter graduating year: 2013
Enter student ID: 1234.4567

打印ArrayList时,它是如何存储在对象中的:

Name: Smith
Grade: senior
Major: Computer Science
Graduating Year: 2013
Student ID: 1234.4567

添加方法:

public Student add(String name, String grade,
        String major, int year, double id) {
    Student newStu = new Student(addName, addGrade, addMajor, addYear, addId);
    studentList.add(newStu );
    System.out.println("Added!");
    return null;
}

3 个答案:

答案 0 :(得分:0)

这一行:

String nameSearch = kbd.next();

应该是

String nameSearch = kbd.nextLine();

正确?

答案 1 :(得分:0)

kbd 设为 BufferedReader (例如BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in));),然后执行此操作...

case 1: {
            System.out.print("Enter the Students name: ");
            String nameSearch = kbd.readLine();
            Student stu = dc.search(nameSearch );
            if (stu != null) {
                System.out.println(stu); 
            }
            else {
                System.out.print("Enter name AGAIN: ");
                String nameAdd= kbd.readLine();

                System.out.print("Enter grade (freshman, sophomore, junior, senior: ");
                String categoryAdd = kbd.readLine();

                System.out.print("Major: ");
                String majorAdd = kbd.readLine();

                System.out.print("Enter graduating year: ");
                int yearAdd = Integer.parseInt(kbd.readLine());

                System.out.print("Enter student ID: (xxxx.xxxx: ");
                double idAdd= Double.parseDouble(kbd.readLine());

                dc.add(nameAdd, categoryAdd , majorAdd , 
                        yearAdd , idAdd);
            }
            break;
        }

答案 2 :(得分:0)

应该是String nameSearch = kbd.nextLine();。我阅读了多行java教程。 希望这可以帮助。在某种程度上。