黑马程序员技术交流社区

标题: 关于格式化字符 [打印本页]

作者: 丁岩    时间: 2012-9-29 15:02
标题: 关于格式化字符
  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,我瞬间迷茫了。。。这是什么原理啊
作者: 尤洋    时间: 2012-9-29 21:11
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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2