A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

5黑马币
比如,:1% 动态变化到100%
不是用for循环一行一行打印哦,而是从数字1,动态的变化为100,后面跟一个百分号 %;
请问这个用Java应该如何实现呢?谢谢!


最佳答案

查看完整内容

不是C,是‘%4d’不是%04d,答之前试过了,Java SE 1.8是可以的,但要在doc控制台下运行,不要用Eclipse,在Eclipse中,就会是换行的了。

12 个回复

倒序浏览
大西洋 发表于 2015-5-10 19:14
这位兄台,您是学C语言的么? 我试了一下;
System.out.printf("%04d\r",count++); // 在Eclipse中会报错 ...

不是C,是‘%4d’不是%04d,答之前试过了,Java SE 1.8是可以的,但要在doc控制台下运行,不要用Eclipse,在Eclipse中,就会是换行的了。
回复 使用道具 举报
Rdxer 来自手机 中级黑马 2015-5-10 11:13:06
藤椅
打印之后清空原来的,就行了,控制台只有输出没有修改,,
回复 使用道具 举报
等待大神 回复正确答案~{:2_30:}
回复 使用道具 举报
可以使用System.out.printf("%4d\r",count++)打印你要的信息,这条语句中“\r"表示回车,即回到该行开始位置,每次打印都会覆盖原先的输出。"%4d",表示这有一个十进制整数,占4个位置。“%%”指百分号。打印语句之间要添加时间间隔,可以用一个变量循环计数实现,虽然没有实际意义,但可以验证答案。
回复 使用道具 举报
Rdxer 发表于 2015-5-10 11:13
打印之后清空原来的,就行了,控制台只有输出没有修改,,

请问如何清空??谢谢。
回复 使用道具 举报
本帖最后由 大西洋 于 2015-5-10 19:15 编辑
pvbj0314 发表于 2015-5-10 19:00
可以使用System.out.printf("%4d\r",count++)打印你要的信息,这条语句中“\r"表示回车,即回到该行开始位 ...

这位兄台,您是学C语言的么? 我试了一下;
System.out.printf("%04d\r",count++); // 在Eclipse中会报错,要改为System.out.println("%04d\r"+count++);

输出结果是这样:
0
%04d
0
%04d
1
%04d
2
%04d
3
。。。依然是一行一行输出。。。没有覆盖前一个数字
回复 使用道具 举报
这个在Eclipse里面用代码清空控制台是没有的(至今我没发现,以前我也要用到过),只用手动点击控制台的clear按钮才可以,如果你一定要看到动态变化,你可以在输出的那一行加上断点,调试下就能看到他的变化了
回复 使用道具 举报
Rdxer 中级黑马 2015-5-11 17:52:44
9#
大西洋 发表于 2015-5-10 19:08
请问如何清空??谢谢。

帮你百度了下,没找到,,,  命令控制台下可以,,,  Eclipse 没试过,,不用太介意这个,控制台就是给看的  
回复 使用道具 举报
pvbj0314 发表于 2015-5-11 19:27
不是C,是‘%4d’不是%04d,答之前试过了,Java SE 1.8是可以的,但要在doc控制台下运行,不要用Eclipse ...

感谢回答!我自己也试了一下,用 \b 也可以实现,Eclipse有bug,不支持 \b...
回复 使用道具 举报
class C{
        /*
                练习使用运算符
        */
        public static void main(String[] args){
                System.out.print("正在安装:...");
                delay(1000l);
               
                for(int i = 0; i < 100; i++){

                        if(i<10)
                                System.out.print("\b\b\b0"+i+"%");
                        else
                                System.out.print("\b\b\b"+i+"%");

                        delay(150l);
                }
                System.out.println("\b\b\b100%");
                System.out.println("安装完成!");
        }

        private static void delay(Long l){
                try{
                        Thread.sleep(l);//按照指定毫秒数延时执行。
                }catch(Exception e){
                        System.out.print("延时出现异常!");
                }               
        }
}
回复 使用道具 举报
QQheima 发表于 2015-5-14 14:02
class C{
        /*
                练习使用运算符

感谢回答,\b 在 eclipse中无法被失败,在cmd命令行中是可以的;这是Eclipse久远以来没解决的bug。。。
回复 使用道具 举报
请尽快选择最佳答案。谢谢。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马