2017-07-31 41 views
-2

我使用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

可能不可能,因为您需要按_return_将输入发送到控制台。 _return_也意味着一条新线。 – Tom

回答

1

从打印时分开收集输入。您可以使用Java's String formatting(您关心的代币为%s%d)来实现此目的。

本质...

System.out.printf("Hello, my name is %s and I am %d years old. ...", name, age, ...); 
0

我认为使用Eclipse IDE的事实是在误导你。当您在Eclipse终端上运行应用程序时,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!"); 
} 

注意:

  • 与资源命令尝试使用在执行结束,关闭扫描仪
  • 所有信息在第一个块上检索
  • 在第二个块上,您可以更改任何printprintln强制你想要的新线。
相关问题