我使用NetBeans IDE 8.2,我编写了这段代码:
System.out.print("Hello, my name is ");
Name=scan.nextLine();
System.out.print("and I am ");
age=scan.nextInt();
Name=scan.nextLine();
System.out.print("years old. ");
System.out.print("I'm enjoying my time at ");
Name=scan.nextLine();
System.out.print("though I miss my pet ");
Name=scan.nextLine();
System.out.print("Very much!");
输出为:
您好,我的名字是(输入)
我是(输入)
岁。我很开心(输入)
虽然我想念我的宠物(输入)
非常!
但我希望它是:
您好,我的名字是(输入)而我是(输入)年
旧。我在(输入)享受我的时间,但是
我非常想念我的宠物(输入)!
我不知道如何让每个句子出现在与输入相同的行中......
提前致谢。
答案 0 :(得分:1)
将打印输出与打印输出分开收集。您可以使用Java's String formatting(您关注的令牌为%s
和%d
)来实现此目标。
...基本上
System.out.printf("Hello, my name is %s and I am %d years old. ...", name, age, ...);
答案 1 :(得分:0)
我认为使用Eclipse IDE的事实会误导你。在Eclipse Terminal上运行应用程序时,stdin
和stdout
将打印在同一控制台中。但是,您在stdin
上输入的信息不会写在stdout
上。此外,由于您需要处理扫描仪上的所有行,您将需要在用户输入上使用行尾,这样您就无法保留句子。请注意,尽管您可以在一行中看到该句子,但由于Eclipse混合了stdin
和stdout
(尽管应该有不同的颜色),因此您不会存储信息。
我的建议是将代码分为两部分:
在这里,我根据您的解决方案为您提供代码:
public static void main(String[] args) {
String name = null;
int age = 0;
String place = null;
String petName = null;
try (Scanner scan = new Scanner(System.in)) {
System.out.println("Please enter your name");
name = scan.nextLine();
System.out.println("Please enter your age");
age = scan.nextInt();
System.out.println("Please enter where you are");
place = scan.nextLine();
System.out.println("Please enter your pet name");
petName = scan.nextLine();
}
System.out.print("Hello, my name is ");
System.out.print(name);
System.out.print(" and I am ");
System.out.print(age);
System.out.println(" years old. ");
System.out.print("I'm enjoying my time at ");
System.out.print(place);
System.out.print("though I miss my pet ");
System.out.print(petName);
System.out.println(" very much!");
}
请注意:
print
更改任何println
以强制您想要的新线条。