java - 创建一个自定义方法来在 Java 中缓慢打印文本

标签 java arrays string

我正在尝试在 Java 中创建一个方法,该方法将接受一个字符串并缓慢打印出来。我在这里找到了执行缓慢打印的代码( Slowly print text in Java ),并且一直在尝试用它创建一个方法,但我对 Java 仍然很陌生。这是我的代码

public class propago
{
    public static void main(String[] args)
    {
        String strMessage;  
        strMessage = "Testing 1 2 3";
        slowPrint(strMessage);
    }//end main(String[])

    public static void slowPrint(String[] args) throws InterruptedException
    {
        char[] chars = strMessage.toCharArrray();

        for (int i = 0; i < chars.length; i++)
        {
            System.out.print(chars[i]);
            Thread.sleep(100);
        }
    }//end slowPrint(String[])
}//end propago

答案可能很明显,但我就是不明白。

当尝试编译代码时,出现以下错误:

propago.java:12: error: incompatible types: String cannot be converted to String[]

                slowPrint(strMessage);
                          ^
propago.java:17: error: cannot find symbol
                char[] chars = strMessage.toCharArrray();
                               ^
  symbol:   variable strMessage
  location: class propago
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
2 errors

应用建议的更改(希望正确)后,不兼容类型错误已解决,但我仍然收到以下错误

propago.java:10: error: cannot find symbol
                char[] chars = strMessage.toCharArray();
                               ^
  symbol:   variable strMessage
  location: class propago
1 error

这是我当前的代码,进行了更改

public class propago
{
    public static void main(String[] args)
    {
        String strMessage;  
        strMessage = "Testing 1 2 3";
        slowPrint(strMessage);
    }//end main(String[])

    public static void slowPrint(String args)
    {
        char[] chars = strMessage.toCharArray();

        for (int i = 0; i < chars.length; i++)
        {
            System.out.print(chars[i]);
            try {
            Thread.sleep(100);
            } catch (InterruptedException e){
                //Should not happen
            }
        }
    }//end slowPrint(String[])
}//end propago

最佳答案

你的问题是slowPrint它需要一个String数组并且可能抛出一个未经检查的异常,即InterruptedException

要解决String数组的问题,只需更改方法以获取String,而不是String[]

在您的代码中,没有理由相信有人会中断您的代码(仅发生在多线程代码中),因此您可以通过在发生异常时捕获异常来忽略它:

try {
    Thread.sleep(100);
} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    return;
}

然后从 slowPrint 的声明中删除 throws InterruptedException

关于java - 创建一个自定义方法来在 Java 中缓慢打印文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089090/

相关文章:

arrays - 查找定界符并打印第二个数组

c++ - 在 C++ 中查找等于数组的值

c++ - Levenstein 程序差异?

java - 为什么我们不能通过类名在静态 block 中设置静态最终变量的值

java - 添加两个字符数组并将结果作为字符存储在 Java 中的另一个字符数组中

java - 如何在使用自己的证书时启用 PDF LTV 签名 (Adobe java PDFBox)

java - 关于 Hibernate 中查询的字符串创建以及这些查询如果是最终静态是否会减少对象创建

arrays - 如何在 TTCN-3 中对任意大小的数组使用排列?

php - 如何获得某个角色之后的所有内容?

java - 将某些子字符串前缀添加到数组列表中