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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁岩 中级黑马   /  2012-9-29 15:02  /  1296 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package Mych1;
  2. import java.text.*;
  3. public class StringMe
  4. {
  5. public static void main(String[]args)
  6. {
  7. //System.out.println(new Time(12,33,45).toString());
  8. System.out.println(new Time(13,33,45).show());


  9. }
  10. }

  11. class Time
  12. {
  13. public int hour;
  14. public int minute;
  15. public int seconds;

  16. public Time(int hour,int minute,int seconds)
  17. {
  18. this.hour=hour;
  19. this.minute=minute;
  20. this.seconds=seconds;
  21. }

  22. public String show()
  23. {
  24. DecimalFormat df=new DecimalFormat("00");//这个00是干什么的啊,看API没看明白,这个参数
  25. String str=df.format(hour%12)+":"+df.format(minute)+":"+df.format(seconds);
  26. return str;
  27. }
  28. }
复制代码
求助这个java.text.DecimalFormat的用法,真心有点没看懂,那个00是什么意思。上面代码输出的结果是:01:33:45,如果是DecimalFormat df=new DecimalFormat("11");就变成了111:1133:1145,我瞬间迷茫了。。。这是什么原理啊

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

1 个回复

倒序浏览
DecimalFormat(String pattern)
          使用给定的模式和默认语言环境的符号创建一个 DecimalFormat。
我猜测 原理应该是类似于 毕姥爷 讲正则校验 ip地址时的情况。
str1=str1.replaceAll("(\\d+)","00$1");   然后再str1=str1.replaceAll("0*(\\d+)","$1");       这样就会出现 01:03:04这样的格式
如果是“11”的话 由于不为0最后在第二步时没有去除掉11,所以保留下来
变成了111:1133:1145
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马