最常见的就是 while(sc.hasNext()){ int a = nextInt(); } int都是很好读的,最主要是char:
如果字符串中不包含空格,可以使用 next() 方法:
Java
Scanner in = new Scanner(System.in);
int n = in.nextInt(); // 读取字符串长度
String s = in.next(); // 读取字符串(遇到空格或换行符停止)
如果字符串中可能包含空格,或者你需要读取一整行,应使用 nextLine()。但要注意,在 nextInt() 之后使用 nextLine() 时,需要先用一个额外的 nextLine() 消耗掉数字后的换行符:
nextInt() 只读取数值: 当你在控制台输入数字并按下回车(Enter)时,输入流中实际上包含了“数字”和“换行符(\\n)”。nextInt() 只会从流中取走数字部分,而将换行符残留在缓冲区内。nextLine() 会读取到换行符为止: 这个方法的设计初衷是读取一整行,它一旦遇到换行符就会停止读取并返回结果。Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine(); // 消耗掉整数后的换行符
String s = in.nextLine(); // 读取整行字符串
核心方法对比:
next(): 读取到有效字符后,以空格、Tab或回车作为结束符。nextLine(): 读取到回车符为止,可以获取包含空格的字符串。