我已将控制台设置为固定宽度,并且还增加了控制台输出的文本大小。我有一个自定义方法,它接受一个字符串的每个字符并在System.out
中显示,一次一个字符,每个字符输出之间有一个Thread.sleep
。
它工作正常,直到我更改了文本的大小,但更改它不起作用。基本上一旦它达到最大宽度,它就不会继续打印字符,其中一些会打印出来,但大部分都没有。但是,如果我在运行后更改字体大小,所有文本都会以它应该的方式显示,但我永远不会让它在应用程序的第一次运行时以这种方式出现。我希望我能够很好地解释这一点。如果您想了解更多信息,请与我们联系。任何帮助将不胜感激,谢谢
我不知道如何编辑我的评论以正确发布代码所以我会在这里添加它
这是方法的代码:
public static void delayedPrint(int delay, String s){
try {
for (char c : s.toCharArray()){
System.out.print(c);
Thread.sleep(delay);
}
}catch (InterruptedException e){
}
System.out.println();
}
我在这里实现:
delayedPrint(40,"You wake. You remember nothing. Nothing is familiar: not the smell, which hangs in the air like the inside of a Lysol bottle, nor the taste—yes the room has a taste…like a college dining hall cleaned with dirty rags. And not the sight: This is a hospital cot, isn’t it?");
这一功能正常,直到我在控制台设置中打开固定宽度,即当输出达到最大宽度时输出变得不稳定。
答案 0 :(得分:1)
我不确定这是多少答案
当我尝试它时,会发生类似的事情。我很确定它是一个Eclipse的东西,因为如果你在cmd上运行它,它的工作正常。我找到了解决方法,打印出适合我的所有角色。
所以,假设您有80个字符的固定宽度。然后,您可以执行以下操作:
public static void delayedPrint(int delay, String s){
int charCounter = 0;
try {
for (char c : s.toCharArray()){
System.out.print(c);
charCounter++;
if(charCounter % 80 == 0) System.out.println();//Replace 80 with your console width
Thread.sleep(delay);
}
}catch (InterruptedException e){
}
System.out.println();
}
因此,每次到达控制台宽度时,基本上强制换行。我不确定它对你有多大用处。希望它有所帮助。