【问题标题】:How to combine multiple print statements without overriding the previous print statement如何在不覆盖之前的打印语句的情况下组合多个打印语句
【发布时间】:2015-09-03 16:01:10
【问题描述】:

我想编写一个代码,在同一行上打印多个打印语句,而不覆盖前面的行。例如:

语句 1:你好“7spaces”世界

语句 2:java

语句 3:Hello java World

我想通过结合语句 1 和 2 来实现语句 3

EDIT1:我的问题可能模棱两可,但事实并非如此......我无法正确传达......基本上我想使用两个打印语句在 hello 和 world 之间插入 java

【问题讨论】:

  • 不应该由“Hello World java”声明 3 吗?
  • 变量可以解决问题
  • hello和world之间有7个空格,我想在它们之间插入java
  • 这个问题充其量是令人困惑的。您想在一般情况下使用 字符数组/数组 吗?因为在打印到控制台/文件时在字符串之间“插入”任何内容没有意义。
  • 如果你真的想做打印语句,那你为什么不能有System.out.print("Hello "); System.out.print("java "); System.out.print("World"):

标签: java printing overriding


【解决方案1】:
String spaces = "       ";
String one = "Hello       World";
String two = "java";
String three = one.replace(spaces," "+two+" ");

System.out.println(one);
System.out.println(two);
System.out.println(three);

这个问题很模糊,所以我认为这就是你想要的。

我已将“Hello”和“World”之间的“”替换为“java”

【讨论】:

    【解决方案2】:

    你只需要 6 个空格。

    System.out.print("Hello      World");
    System.out.print("\b\b\b\b\b\b\b\b\b\bjava");
    

    它不能在 Eclipse 控制台中工作,但它在命令提示符下工作。


    现在,由于您不能向前移动光标,只能向后移动,因此您可能需要将当前行保存在内存中的缓冲区中以应对更复杂的场景,然后重新打印整行。

    在这种情况下,您可以使用\r 返回到行首,然后在现有文本上打印。如果您的新文本较短,请务必使用空格填充以清除现有文本。

    【讨论】:

      【解决方案3】:

      如果有帮助,您可以使用格式化打印..

      System.out.printf("Hello %s World", "Java");
      

      或使用正则表达式

      String str1 = "Hello        World";
      String str2 = "Java";
      System.out.println(str1.replaceAll("[ ]{7,7}", " "+str2));
      

      【讨论】:

        猜你喜欢
        • 2019-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 1970-01-01
        • 2017-07-17
        相关资源
        最近更新 更多