这就是我的代码到目前为止的外观。
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(),这样您就不会再遇到此问题