Scanner,一个数据流的方法---》记得用完需要关闭减少内存占用--->close().
Scanner主要用到的方法有两个:next(),nextLine().
next():省略空格,输出的是字符串类
nextLine():所有输入的被会被输出出来。
Scanner包含的方法有很多,从源码上看到Scanner被包含在java的Util包下且Scanner是一个final类,且继承至Iterator。:
而通过Iterator的源码展示我们可以看到:
Iterator(迭代器)是一个接口类,且具有以下4个方法:
boolean hasNext();
E next();
default void remove() {
throw new UnsupportedOperationException("remove");
}
default void forEachRemaining(Consumer<? super E> action) {
Objects.requireNonNull(action);
while (hasNext())
action.accept(next());
}
其中前三个方法通过创建Scanner对象就可直接使用,而forEachRemaining()方法通过创建一个Iterator对象才能用, forEachRemaining本质是 while(iterator.hasNext()){iterator.next()} 操作,调用了hasNext所以cursor最后超出,对于一个Iterator对象来说这是不可逆的。
回到Scanner,Scanner有很多的私有方法这里是很小的一部分:
平时用到的基本都是它的has***(),match()方法等等,不难理解。
这是我学到的第一个程序与程序员交互的方法,记录一下