暂停打印在Java中不起作用

菲内特

我一直在尝试用Java编写一个程序,以逐个字母输出文本,每个字母之间都有一个停顿。代码将字符串自动换行并打印。当延迟为半秒或一秒时,我的延迟方法“ slow()”可以很好地工作,但是在较低的延迟时间,它会做一些奇怪的事情。

当打印并且延迟特别短时,程序会在该行上挂起延迟时间乘以行返回之前要打印的字母数,然后立即将所有内容吐出。

同样,当延迟设置为250毫秒时,文本也会错误地打印出来。

在示例中,字符串为:

“ Lorem ipsum胡萝卜,生态番茄汤。没有电视的狮子,但电视丑陋。”

预期的输出将是:

Lorem ipsum dolor坐下来,自私自利
没有员工能像狮子一样生活,但是电视可以污秽。

但是250的输出是:

莱姆非常定,主持人本科
研究。但生活中的任何乳香。

这是代码:

public static void main(String[] args) {
    String x = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vitae molestie leo, sed molestie turpis.";
    say(500,x); // Works Nicely, does one letter at a time with a 0.5s wait in between.
    System.out.println();
    say(250,x); // Has proper delay, but prints strange stuff
    System.out.println();
    say(100,x); // Prints Line by line with a wait of (letters*0.1s) wait in between.
}

public static void say(int speed, String words) {
    int i = 0;
    int ii = 0;
    while (i < words.length()) {
        slow(speed);
        System.out.print("" + words.charAt(i));
        if (ii >= 50 && words.charAt(i) == ' ') {
            System.out.println(words.charAt(i));
            ii = 0;
        } else {
            ii++;
        }
        i++;
    }
    System.out.println(" ");
}

public static void slow(int time) {
    try {
        Thread.sleep(time);
    } catch(InterruptedException ex) {
        Thread.currentThread().interrupt();
    }
}

slow()具有相同故障的替代方法:

public static void slow(int time) {
    long startTime = System.currentTimeMillis();
    while(System.currentTimeMillis() - startTime < time) {

    }
}

我不确定它是否重要,但这都是在带有JDK 1.7的NetBeans 7.4 x64中完成的。

我是Java的新手,但不是编程的新手。任何帮助,将不胜感激!主要问题是时间安排,这就是我需要工作的时间;奇怪的印刷只是一个问题。

杰西的混乱

这听起来有点腥。.从命令行运行它,您的代码看起来不错并且对我来说也很好。我认为,就像吉姆·加里森(Jim Garrison)所说,这与您的环境有关。您是否尝试过从命令行运行程序,以便将Netbeans排除在外?

接下来我会怀疑是Thread.currentThread().interrupt();的代码行中的内容catch(InterruptedException ex)尝试将其注释掉(除了可能打印InterruptedException堆栈跟踪(ex.printStackTrace()外,什么也不做

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

漂亮的打印不起作用?

来自分类Dev

在ie10中打印IFrame不起作用

来自分类Dev

Javascript打印div在Safari中不起作用

来自分类Dev

Java Scanner在处理中不起作用

来自分类Dev

暂停Sprite Kit中的游戏:为什么不起作用?

来自分类Dev

RemoteControlClient磨损播放/暂停不起作用

来自分类Dev

JSplitPane中的Java JScrollPane不起作用

来自分类Dev

awk打印在bash shell脚本中不起作用

来自分类Dev

文件打印似乎在询问中不起作用

来自分类Dev

打印功能在Chrome中不起作用

来自分类Dev

Sendgrid Java在Maven中不起作用

来自分类Dev

为什么在python中打印参数不起作用?

来自分类Dev

使用getResourceAsStream在Java中不起作用

来自分类Dev

暂停我的游戏在Swift SpriteKit中不起作用

来自分类Dev

为什么“打印”在node.js中不起作用?

来自分类Dev

Spyder,matplotlib和打印中的子流程不起作用

来自分类Dev

在ie10中打印IFrame不起作用

来自分类Dev

打印在Python 3.3中不起作用?

来自分类Dev

Javascript打印div在Safari中不起作用

来自分类Dev

(“”)打印在python中不起作用

来自分类Dev

jQuery循环暂停/恢复:不起作用?

来自分类Dev

点击播放/暂停在Mozilla中不起作用

来自分类Dev

在Java中打印字节的二进制形式,“ ==”不起作用?

来自分类Dev

在R中打印时间戳毫秒不起作用

来自分类Dev

为什么“打印”在node.js中不起作用?

来自分类Dev

Fortran的“读取”和“打印”在终端中不起作用

来自分类Dev

播放/暂停不起作用 Spotify

来自分类Dev

暂停和重启按钮不起作用

来自分类Dev

暂停到 RAM 不起作用