来自 Scanner 类的 next() 和 nextLine() 方法之间有什么区别?

2022-08-31 10:08:54

和 之间的主要区别是什么?
我的主要目标是使用可能“连接”到任何源(例如文件)的a来读取所有文本。next()nextLine()Scanner

我应该选择哪一个,为什么?


答案 1

我总是喜欢使用然后解析字符串来读取输入。nextLine()

using 将仅返回分隔符之前的内容(默认为空格)。 返回当前行后自动向下移动扫描仪。next()nextLine()

解析数据的有用工具是 。nextLine()str.split("\\s+")

String data = scanner.nextLine();
String[] pieces = data.split("\\s+");
// Parse the pieces

有关 Scanner 类或 String 类的详细信息,请参阅以下链接。

扫描仪: http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

字符串:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html


答案 2

next()只能读取输入直到空间。它无法读取由空格分隔的两个单词。此外,在读取输入后,将光标放在同一行中。next()

nextLine()读取输入,包括单词之间的空格(即,它读取到行尾)。读取输入后,将光标放在下一行。\nnextLine()

要阅读整行,您可以使用 。nextLine()


推荐