我如何用一行从用户那里获得两个字符串输入



这就是我的代码到目前为止的外观。

public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
String name, age, job;
System.out.println("What is your name?");
name = keyboard.next();
System.out.println("How old are you?");
age = keyboard.next();
System.out.println("What do you do for a living?");
job = keyboard.next();
System.out.println("Your name is " + name + ". You are " + age + " year old. And you live as a " + job + ".");
}

如果可能的话,我想详细学习,因为这是我真正想学习的东西。

每次程序获取"作业"输入时,只有将空间存储到"作业"变量之前的第一个单词。

预先感谢。这是我在这里的第一个线程。希望我将成为这个很棒的社区的一部分。:)

您正在使用Scanner.next()从用户检索数据。没有任何其他配置,此方法将检索下一个令牌,其中令牌是由空格隔开的非空格字符的序列。
这说明了为什么您只检索工作的第一个单词(这也会在其他信息中发生)。

如果您想检索到一个单词,则可以切换到Scanner.nextLine()
请注意,您将无法输入三个数据并按Enter,您当前代码可能是可能的行为。

您应该使用scanner.nextline()读取用户的整个行输入,而不是scanner.next()

您可以将给定的String与类似的字符分开。除此之外,您可以使用GUI(但如果是控制台,我能想到的最好的是Split)。

编辑:

当然,您输入了" John Do",并由white space分成其他两个字符串。

作业变量只有一个单词的原因是因为您使用键盘.next()使用job =键盘.nextline();

因此,作业变量将存储您输入的整个字符串。

我建议您在所有字符串类型键盘输入中使用NextLine()而不是NextLine(),这样您就不会再遇到此问题

相关内容

  • 没有找到相关文章

最新更新