Java 如何在hashmap中打印字符串变量? HashMap students=newhashmap(); 扫描仪=新的扫描仪(System.in); 整型新闻学生; 做{ System.out.print(“输入ID:”); newStudent=scanner.nextInt(); 如果(!(newStudent==0)){ 系统输出打印(“名称:”); 字符串名称=scanner.nextLine(); 学生。put(newStudent,name); scanner.nextLine(); } }而(!(newStudent==0)); System.out.println(“班级花名册”); for(Map.Entry student:students.entrySet()){ System.out.println(student.getKey()+”(“+student.getValue()+”); }

Java 如何在hashmap中打印字符串变量? HashMap students=newhashmap(); 扫描仪=新的扫描仪(System.in); 整型新闻学生; 做{ System.out.print(“输入ID:”); newStudent=scanner.nextInt(); 如果(!(newStudent==0)){ 系统输出打印(“名称:”); 字符串名称=scanner.nextLine(); 学生。put(newStudent,name); scanner.nextLine(); } }而(!(newStudent==0)); System.out.println(“班级花名册”); for(Map.Entry student:students.entrySet()){ System.out.println(student.getKey()+”(“+student.getValue()+”); },java,Java,它没有在控制台上打印名称。它只在控制台上打印“1()”和“2()”。我做错了什么?如果像这样的声明,请更改 HashMap <Integer, String> students = new HashMap<>(); Scanner scanner = new Scanner(System.in); Integer newStudent; do{ System.out.print("Enter an ID: ");

它没有在控制台上打印名称。它只在控制台上打印“1()”和“2()”。我做错了什么?如果

像这样的声明,请更改

    HashMap <Integer, String> students = new HashMap<>();
    Scanner scanner = new Scanner(System.in);
    Integer newStudent;

    do{
        System.out.print("Enter an ID: ");
        newStudent = scanner.nextInt();

        if(!(newStudent == 0)){
            System.out.print("Name: ");
            String name = scanner.nextLine();
            students.put(newStudent, name);
            scanner.nextLine();
        }
    }while (!(newStudent == 0));

    System.out.println("Class Roster: ");

    for(Map.Entry <Integer, String> student : students.entrySet()){
        System.out.println(student.getKey() + " (" + student.getValue() + ")");
    }
第一个
nextLine()
将获得一个空行(请参见dupe),第二个将获得您输入的名称,但您不会捕获其值。
    if(!(newStudent == 0)){
        scanner.nextLine();    // skip ID line.
        System.out.print("Name: ");
        String name = scanner.nextLine();
        students.put(newStudent, name);
    }