OJでjava入力hasNextとhasNextLineの違い
ここでjavaで、
まず具体的な結論を言います.
----分割線----
二つの方法の違いを話してください.
問題判定システムのすべての試験例はファイルに格納され、上記の例では、試験例のファイルは次のとおりです.
5を処理した後、空でない文字はない
だから
hasNextLine
とhasNext
の違いを具体的に説明しますまず具体的な結論を言います.
has xxxx
を採用する場合は、後からも使用するnext xxxx
.例えば前に使用するhasNextLine
、後に使用するnextLine
入力を処理する.----分割線----
二つの方法の違いを話してください.
hasNext
空白文字がないかチェックです.hasNextLine
入力にまだあるかチェックlinePattern
です.そのうちLinePattern
実は正規表現にマッチしています. private static final String LINE_SEPARATOR_PATTERN =
"\r
|[
\r\u2028\u2029\u0085]";
private static final String LINE_PATTERN = ".*("+LINE_SEPARATOR_PATTERN+")|.+$";
問題判定システムのすべての試験例はファイルに格納され、上記の例では、試験例のファイルは次のとおりです.
7 15 9 5
5を処理した後、空でない文字はない
hasNext
falseに戻ったが、linuxシステムでは5
後に改行符がある
、0X0A
(興味のある方は自分で作成してバイナリでファイルを見ることができます).だから
hasNextLine
戻ってくるtrue
でも実は後ろに読める要素がないので、下のin.nextInt
異常を投げ出します.