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

新手上路,请多包涵

next()nextLine() 之间的主要区别是什么?

我的主要目标是使用 Scanner 阅读所有文本,它可以“连接” 到任何来源(例如文件)。

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

原文由 AnnieOK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 423
2 个回答

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

使用 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

原文由 Tristan 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

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

原文由 RKC 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题