等待时间后字符串替换

时间:2015-06-09 01:44:50

标签: java string multithreading

编辑:代码已经解决。此解决方案仅经过测试才能用于cmd。也就是说,它可能不适用于Eclipse。

现在更正后的代码:

String code = "Generating code...\r";
String successful = code.replaceAll("Generating code...\r", "Generating the code has been successful.\r");

原始问题: 我希望能够显示一个字符串两秒钟,然后在等待两秒后,我希望该字符串被另一个字符串替换。

我尝试过一种基本结构,但似乎没有替换代码,而是出现在它下面。

代码:

String code = "Generating code...\n\n";
String successful = code.replaceAll("Generating code...\n\n", "Generating the code has been successful.\n\n");

[...]
try {
      System.out.print(code);
      Thread.sleep(2000);
      System.out.print(successful);
    }

catch(InterruptedException e) {
                 [...]
        }

此代码目前的作用是打印生成代码......然后在两秒后它将打印生成代码已成功...在两个新行上。

然而,我没有打印两个新行,而是希望String生成代码成功覆盖String生成代码...仅在两秒钟过后。

2 个答案:

答案 0 :(得分:2)

您正在做的是打印到控制台。 你的replace()没有做任何事情。 如果你必须打印旧输出,你可以使用\ r跳回当前行的开头。(确保使用print,而不是println!)

像这样:

String code = "Generating code...\r";
String successful = "Generating the code has been successful.\r"

[...]
try {
    System.out.print(code);
    Thread.sleep(2000);
    System.out.print(successful);
}

catch(InterruptedException e) { [...] }

已知错误:这可能在Eclipse中无效!

答案 1 :(得分:1)

如果您想根据Gosu的评论清除控制台,请查看此帖子Java: Clear the console

如果您使用某种图形用户界面,则需要更改图形小部件的文本。