再一次java编程中,我遇到了难题,就是我的address总是跳过,输入不了数据,看代码
int yeal=add.nextInt();
if (sex.equals("男")||sex.equals("女")){
System.out.println("请输入您想录入的学生地址");
String address=add.nextLine();
stud s =new stud(number,name,yeal,sex,address);
arr.add(s);
System.out.println("哈哈,添加成功");
}
发现出现使用nextInt()后nextLine()读不了字符串的问题,由于以前也遇到这样的问题,但是没有查明原因,心想不能
再这个混过去,于是查找了一下原因。其原因如下:
nextInt()方法在读取数字时,不会将转义字符读进去,因此换行字符就留在了输入缓冲区上,而nextLine()方法是以换行字符为结束符将数据与结束符读入。所以就会出现在nextInt()方法后的nextLine()读入的是空字符串。
针对这个问题,有两种方法解决:
1.在nextInt()和nextLine()中间加入一个nextLine()。
2.都使用nextLine()进行读取,在读取整数时采用Integer类的parseInt()方法转换成整数。
资料来源:https://blog.csdn.net/tanjlang/article/details/78688069