Java——ACM编程

tips:Mac版本的IDEA控制台,输入cmd+d表示文件末尾EOF。EOF是一种状态,表示没有更多的输入了,并不占用空间。

方法 是否读取/消费输入 是否移动指针 用途
hasNextXxx() ❌ 否 ❌ 否 判断是否可以安全读取某种类型
nextXxx() ✅ 是 ✅ 是 真正读取并移除输入

1. hasNextXxx( )

1.1 hasNext( )

作用:跳过输入开头的所有空白字符(空格、制表符、换行符),然后判断后面是否还有非空白字符。

所以它会:

  1. 从当前位置开始,跳过所有空白字符(包括换行!)
  2. 如果遇到非空白字符 → 返回 true
  3. 如果到达输入末尾(EOF)→ 返回 false

1.2 hasNextLine()

hasNextLine() 的逻辑是:

"输入流中是否还存在一整行内容(直到下一个换行符或文件末尾)?"

  • 它会检查是否已经到达输入的末尾(EOF)
  • 只要还没到末尾,哪怕下一行是空的(只有换行符),也返回 true
  • 只有当所有行都读完了 ,才会返回 false

2. nextXxx()

2.1 next()

2.2 nextLine()

一直读输入缓存区各个字符,直到遇到换行符或者EOF,就停止

  • 如果遇到换行符,就停止,并消耗掉换行符
  • 如果遇到EOF,停止。