Java吸收换行符

Java吸收换行符Posted on

        今天做题遇到的……

        由于读入的字符串可能包含空格,所以采用nextLine。

int n = sc.nextInt();for(int i=0; i<n; i++) { String s = sc.nextLine(); System.out.println(s);}

        上面的代码只会输出n-1个字符串,最后一个没有输出,香港服务器,原因nextInt()方法会读取下一个int型标志的token,服务器空间,但是焦点不会移动到下一行,美国空间,仍然处在这一行上。当使用nextLine()方法时会读取改行剩余的所有的内容,包括换行符,然后把焦点移动到下一行的开头,所以这样就无法接收到下一行输入的String类型的变量。

        解决方案

int n = sc.nextInt();for(int i=0; i<n; i++) { String s = sc.next(); s += sc.nextLine(); System.out.println(s);}

        原因: next()方法是以换行或者空格符为分界线接收下一个String类型变量,不过并没有提取换行或者空格,所以生成的s并不包含换行。

天再高又怎样,踮起脚尖就更接近阳光。

Java吸收换行符

相关文章:

你感兴趣的文章:

标签云: