发生情况
在使用Java过程中,有时候会出现上次输入后中断输入的回车符结束了下次输入的情况,这种情况通常发生在这样的条件下:
当使用了Scanner类中的nextxxxx()方法(除了nextLine()方法以外的)之后,在其下使用了一个nextLine()方法
原因是除了nextLine()方法以外的该类下的输入方法都会舍弃回车符,当发生上面的情况的时候,标志着上一次输入完成的回车符会被紧接着的nextLine方法吸收完成其自身的一次输入
解决方法
如上面所说,只有nextLine()不会舍弃回车符号,所以理所当然的,吸收回车符也只要在问题发生处再加上一个nextLine()方法即可
举例
如这种情况:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String a = sc.nextLine();
就会导致字符串a吸收回车符直接完成了输入,解决如下:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
String a = sc.nextLine();