为什么nextLine()而不是nextString()?

时间:2017-01-31 19:31:14

标签: java methods

我是Java的新手,我刚开始学习这门语言。

有一件事我无法得到。我必须使用completionHandler!(NCUpdateResult.newData)从用户获取Int。但是当我需要一个字符串时,我必须写nextInt()

为什么?

P.S:这听起来像个愚蠢的问题,但我需要知道:-)

2 个答案:

答案 0 :(得分:1)

它们是特定的功能,并期望特定的用户输入。这就是他们制作的方式。

我查看http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html 获取有关他们的信息。

具体来说,请看http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine() http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt()

答案 1 :(得分:0)

考虑一下:nextLine以String形式返回直到下一个结束线(\ n)的所有内容。如果将其命名为nextString,您是否会认为会检索所有内容?在这种情况下,您将发布问题“为什么nextString()在结束行处停止”

tl; dr这是因为它搜索结束行(\ n)

upd:在文档化时,将其称为“跳过”部分。即光标移至下一行并返回所有“已跳过”。默认输出是String,因此您拥有它:所有内容都跳过为String。