Bootstrap

【Java】需要吸收回车符的情况以及其处理

发生情况

在使用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();
;