java用scanner是不是会有回车残留的问题
代码大概是这样的Scannerscanner=newScanner(System.in);inta=scanner.nextInt();Stringb=scanner.n...
代码大概是这样的
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
String b=scanner.nextLine();
上面这段代码运行时当我敲入一个整数然后回车的时候,b会吸收掉回车,从而不能给b输入值,请问有什么好的解决办法能解决这个残留的回车呢? 展开
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
String b=scanner.nextLine();
上面这段代码运行时当我敲入一个整数然后回车的时候,b会吸收掉回车,从而不能给b输入值,请问有什么好的解决办法能解决这个残留的回车呢? 展开
2个回答
展开全部
你用sc.nextInt()读一个int时如果是在一行上输入,然后按enter结束,scanner不会跳过结尾的'\n',而nextLine()的作用是跳过'\n'并返回被跳过的字符串,所以你下次nextLine()的调用由于缓冲区里已经有一个'\n',所以就直接跳到输入课程名字去了。解决方法是在nextInt()后加一句nextLine():Scanner sc = new Scanner(System.in);int conditon2 = sc.nextInt(); sc.nextLine(); // 跳过'\n' switch (conditon2) { case 1: for (int i = 0; i < theory.length ; i++) { if (theory[i] == null) { System.out.print("请输入课程编号:"); courseID = sc.nextLine(); System.out.print("请输入课程名字:"); courseName = sc.nextLine(); break;}break;default: break; } }%D%A
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询