如何在前一个用户输入的同一行中写下一个句子

时间:2017-07-31 14:50:20

标签: java

我使用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!");

输出为:

  

您好,我的名字是(输入)

     

我是(输入)

     

岁。我很开心(输入)

     

虽然我想念我的宠物(输入)

     

非常!

但我希望它是:

  

您好,我的名字是(输入)而我是(输入)年

     

旧。我在(输入)享受我的时间,但是

     

我非常想念我的宠物(输入)!

我不知道如何让每个句子出现在与输入相同的行中......

提前致谢。

2 个答案:

答案 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上运行应用程序时,stdinstdout将打印在同一控制台中。但是,您在stdin上输入的信息不会写在stdout上。此外,由于您需要处理扫描仪上的所有行,您将需要在用户输入上使用行尾,这样您就无法保留句子。请注意,尽管您可以在一行中看到该句子,但由于Eclipse混合了stdinstdout(尽管应该有不同的颜色),因此您不会存储信息。

我的建议是将代码分为两部分:

  • 第一个询问用户所需信息的人
  • 第二个打印检索到的信息并构建您想要的信息。

在这里,我根据您的解决方案为您提供代码:

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!");
}

请注意:

  • try with resources命令用于在执行结束时关闭扫描程序
  • 在第一个区块检索所有信息
  • 在第二个区块中,您可以按print更改任何println以强制您想要的新线条。