在牛客网做输入输出专项训练时发现的一个小问题
原题链接字符串1
处理输入时,有两行
所以我打算这样取输入
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] s = in.nextLine().split(" ");
但是后面提交时给我的报错是数组泄露问题。
调试了一下发现,用nextLine本来以为是取了一个数组,没想到打印出来是“”
。
后面查了一个发现,原来nextInt取数字时,遇到空格符就停止,但是它不会清除空格符,导致输入缓存里面在第二行数据前面还有一个换行符,所以nextLine取的就是这个换行符。
修改之后就好嘞
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String k = in.nextLine();
String[] s = in.nextLine().split(" ");
参考了这篇文章nextInt()与nextLine()的连用问题