第一次提问,请各位大侠多多指教,因为不好表述,所以网络上也不太好搜索。众所周知    System.out.println("Hello java!");  结果实在控制台上输出Hello java!我的问题是,如何能够实现同样输出Hello java!,但是要求逐个字符输出,而不是一下子全部显示出来。对输出Hello,java来说,就是先输出H,然后e,然后l,...直至最后输出!,换句话说就是控制台输出过程模拟代码输入过程,该如何实现这种方法呢?
           

解决方案 »

  1.   

    String str = "Helle Java!";
    char[] a = str.toCharArray();
    for(char c:a)
        System.out.print(c);
      

  2.   

    1楼的方法 在for循环里让线程sleep一下public class Test { 
    public static void main(String[] args) {
    String str = "hello java!";
    char[] a = str.toCharArray();
    for(char c :a) {
    System.out.print(c);
    try {
    Thread.sleep(500);//睡半秒 时间自己定义 单位毫秒
    }catch(InterruptedException e){
    return;
    }
    }
    }
    }
      

  3.   

    其实sleep的时候cpu就是在做加法。。
      

  4.   


    其实可以想象。。cpu只会一行一行的运行(汇编)代码..停止是无法掌握的..
    我记得做汇编的时候写过类似的代码...
    先根据cpu频率计算1次循环的运行时间 
    然后再用等待时间去除以这个时间来得到 
    最后像
    2楼说那样的循环次数。。再进行循环
      

  5.   

    你那说的是8086,51循环加来得到固定时间,
    那是2楼的做法,不是sleep的做法吧。
    我想sleep是不是用了中断呢。
      

  6.   

    谢谢各位大侠,说的方法我都试过了,4楼的方法不错看来现在争论的焦点是线程的sleep方法是否实际上就是CPU做加法,这得找硬件大师问问了。
      

  7.   

    我只写干的啊
                      String s ="Hello java!";
    String sr=substring(1);
    System.out.println(sr);
    for(int i=0,t=2;i<s.length()-1,t<s.length()+1;i++,t++){
       sr=substring(i,t);
    System.out.println(sr);
    }
    我没运行 不知道行不行,我也是个出学者,没Eclips,就这么想的,我想这种想法是最简单的了!!
      

  8.   


    恩 我确实说的是单片机的东西。
    但是这是个基本方法 也是系统时间运行的方法.
    当然中断也可以...(多单片机都提供 Timer 或则 watch dog的硬件配置来进行时间的监控然后发出中断.不知道pc机器有没得类似的东西)
    不过sleep完全可以调用系统时间来进行对比就是了(这也是在视窗平台的多任务基础上)