[b][size=large]Scanner 一点经验[/size][/b]
原样缓存所有键盘输入至缓冲区。用各种方法从中提取信息后,该信息及之前的信息都将被删除。
nextInt()不匹配会抛出异常
next()默认以空格为分隔符,从缓存中提取两个空格(包括退格,回车)间的非空格字符,提取的信息之后的所有字符仍将保留在缓存,如不存在非空格字符则阻塞。
可以通过useDelimiter("\\s*" + separator + "\\s*");设置新的分隔符,separator可为任意字符串。
nextLine()提取缓存中第一个回车之前的所有信息,并删除缓存中该回车标记及其前的所有字符。返回的串不包括该回车,如回车之前没有任何字符,则返回一个长度为0的空串,如无回车换行标记则阻塞。
输入:aaa后加4空格再回车
输出:
输入串:asd
asd
空白长度:4
原样缓存所有键盘输入至缓冲区。用各种方法从中提取信息后,该信息及之前的信息都将被删除。
nextInt()不匹配会抛出异常
next()默认以空格为分隔符,从缓存中提取两个空格(包括退格,回车)间的非空格字符,提取的信息之后的所有字符仍将保留在缓存,如不存在非空格字符则阻塞。
可以通过useDelimiter("\\s*" + separator + "\\s*");设置新的分隔符,separator可为任意字符串。
nextLine()提取缓存中第一个回车之前的所有信息,并删除缓存中该回车标记及其前的所有字符。返回的串不包括该回车,如回车之前没有任何字符,则返回一个长度为0的空串,如无回车换行标记则阻塞。
Scanner sc = new Scanner(System.in);
System.out.print("输入串:");
String input = sc.next();
System.out.println(input);
input = sc.nextLine();
System.out.println("空白长度:" + input.length());
输入:aaa后加4空格再回车
输出:
输入串:asd
asd
空白长度:4