java - 等待时间后替换字符串

标签 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) {
                 [...]
        }

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

但是,我希望生成代码的字符串成功覆盖字符串生成代码,而不是打印两行新行...仅在两秒过去后。

最佳答案

您正在做的是将其打印到控制台。 你的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 中可能不起作用!

关于java - 等待时间后替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721752/

相关文章:

Java测试异常

java - 将大流复制到字符串 - Java

c - c中的线程数组创建

c++ - 为什么在多线程中没有收到发出的信号?

java - 如果我将一个 JDBC Connection 对象的值传递给另一个 Connection 对象,是否只有一个连接打开? (使用 MySQL 数据库)

java - LDAP 中基于角色的安全实现

java - if语句比较java android中的字符串

c - 用字符填充的动态分配的字符串导致空字符串 C

java - 当线程崩溃时到底会发生什么?

java - 如何构建 Vaadin 演示采样器类型的页面