项目场景:
在控制台输入数据,先输入年级编号,然后回车,用scanner.nextInt()接收,再输入年级名称,回车,用scanner.nextLine()接收,再输入年级状态,用scanner.nextInt()接收
问题描述
年级名称为空
System.out.print("请输入年级编号:");
grade.setGradeid(scanner.nextInt());
System.out.print("请输入年级名称:");
grade.setGradename(scanner.nextLine());
System.out.print("请输入年级状态:");
grade.setStatus(scanner.nextInt());
原因分析:
输入年级编号后回车,则scanner.nextLine()接收回车符,因为scanner.nextLine()读取到回车符“\r”结束,所以导致年级名称值为空。scanner.nextLine()/scanner.next()区别:
scanner.nextLine():读取到空格符结束
scanner.next():读取到回车符“\r”结束
解决方案:
scanner.nextLine()换成scanner.next()