根据 Java API Scanner 使用分隔符将整个输入分解为标记。我正在尝试理解标记和分隔符。我正在做这个程序并且遇到了困惑
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = null;
try {
s = new Scanner(System.in);
s.useDelimiter("A");
System.out.println("1 " + s.next().length());
System.out.println("2 " + s.next().length());
System.out.println("3 " + s.next().length());
System.out.println("4 " + s.next().length());
} finally {
if (s != null) {
s.close();
}
}
}
}
当我使用输入时,AAAAAasdf
我得到以下输出。
1 0
2 0
3 0
4 0
我可以理解这个输出,因为分隔符之间的标记长度为零,因此全部为零但是当我使用默认分隔符并将输入作为
_____aaa\n
-> 用空格替换下划线,然后\n
在 Eclipse 控制台中按回车键。
为此,我得到的输出为
1 3
我无法理解。我给了 5 个空格,所以它们之间应该有 4 个长度为 0 的标记。为什么不?我在这里想念什么?