我正在尝试在 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/