java 中 String format 和Math类实例详解
java字符串格式化输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
@Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format( "I am %s" , "jj" )); //%s字符串 System.out.println(String.format( "首字母是 %c" , 'x' )); //%c字符 System.out.println(String.format( "this is %b" , true )); //%b布尔类型 System.out.println(String.format( "十进制整数 %d" , 34 )); //%d 十进制整数 System.out.println(String.format( "十六进制整数 %x" , 34 )); //%x 十六进制整数 System.out.println(String.format( "八进制整数 %o" , 34 )); //%o 八进制整数 System.out.println(String.format( "浮点 %f" , 34.0 )); //%f 浮点 System.out.println(String.format( "十六进制浮点 %a" , 34.0 )); //%a 十六进制浮点 System.out.println(String.format( "指数 %e" , 34.0 )); //%e 指数类型 System.out.println(String.format( "通用浮点类型 %g" , 34.0 )); //%g 通用浮点 System.out.println(String.format( "散列码 %h" , 34 )); //%h 散列码 System.out.println(String.format( "百分比 %%" )); //%% 百分比 System.out.println(String.format( "换行 %n" )); //%n 换行 System.out.println(String.format( "日期与事件类型 %ty" ,Calendar.getInstance())); System.out.println(String.format( "日期与事件类型 %tm" ,Calendar.getInstance())); System.out.println(String.format( "日期与事件类型 %te" ,Calendar.getInstance())); //%tx 日期与事件类型,x代表不同的日期与时间转换符 %ty 年 %tm月 %te 日 //搭配转换符的使用 System.out.println(String.format( "%+d" , 10 )); //为正数或负数添加符号 System.out.println(String.format( "|%-5d|" , 10 )); //%-?为左对齐 System.out.println(String.format( "%04d" , 10 )); //在整数之前添加指定数量空格 System.out.println(String.format( "%,f" , 999999999.0 )); //以“,”对数字分组 System.out.println(String.format( "%(f" , - 999999999.0 )); //使用括号包含负数 System.out.println(String.format( "%#x" , 34 )); //十六进制添加0x System.out.println(String.format( "%#o" , 34 )); //八进制添加0 System.out.println(String.format( "%#f" , 34.0 )); //浮点数包含小数点 System.out.println(String.format( "%f 和%<3.1f" , 34 .0f)); //格式化前一个转换符所描述的参数(小数后有一位) System.out.println(String.format( "%3.1f" , 34 .0f)); // System.out.println(String.format( "%2$d,%1$s" , "a" , 1 )); // x$代表是第几个变量 //日期格式化 System.out.println(String.format( "全部日期和时间信息%tc" , new Date())); // tc 输出全部日期和时间信息 System.out.println(String.format( "年—月—日格式%tF" , new Date())); // tF 年—月—日格式(要大写) System.out.println(String.format( "月/日/年格式%tD" , new Date())); // tD 月/日/年格式(要大写) System.out.println(String.format( "HH:MM:SS PM/AM格式 %tr" , new Date())); // tR HH:MM:SS PM/AM格式 System.out.println(String.format( "HH:MM:SS(24小时)%tT" , new Date())); // (大写)tT HH:MM:SS 24小时制 System.out.println(String.format( "HH:MM(24小时)%tR" , new Date())); // (大写)tR HH:MM 24小时制 System.out.println(String.format(Locale.US, "英文月份简称%tb" , new Date())); // tb 输出月份简称 System.out.println(String.format( "本地月份简称%tb" , new Date())); // tb 输出月份简称 System.out.println(String.format(Locale.US, "英文月份全称%tB" , new Date())); // tB 输出月份全称 System.out.println(String.format( "本地月份全称%tB" , new Date())); // tB 输出月份全称 System.out.println(String.format(Locale.US, "星期简称%ta" , new Date())); // ta 输出星期简称 System.out.println(String.format( "星期全称%tA" , new Date())); // tA 输出星期全称 Date date = new Date(); System.out.printf( "本地星期的简称:%tA%n" ,date); //C的使用,年前两位 System.out.printf( "年的前两位数字(不足两位前面补0):%tC%n" ,date); //y的使用,年后两位 System.out.printf( "年的后两位数字(不足两位前面补0):%ty%n" ,date); //j的使用,一年的天数 System.out.printf( "一年中的天数(即年的第几天):%tj%n" ,date); //m的使用,月份 System.out.printf( "两位数字的月份(不足两位前面补0):%tm%n" ,date); //d的使用,日(二位,不够补零) System.out.printf( "两位数字的日(不足两位前面补0):%td%n" ,date); //e的使用,日(一位不补零) System.out.printf( "月份的日(前面不补0):%te" ,date); //H的使用 System.out.printf( "2位数字24时制的小时(不足2位前面补0):%tH%n" , date); //I的使用 System.out.printf( "2位数字12时制的小时(不足2位前面补0):%tI%n" , date); //k的使用 System.out.printf( "2位数字24时制的小时(前面不补0):%tk%n" , date); //l的使用 System.out.printf( "2位数字12时制的小时(前面不补0):%tl%n" , date); //M的使用 System.out.printf( "2位数字的分钟(不足2位前面补0):%tM%n" , date); //S的使用 System.out.printf( "2位数字的秒(不足2位前面补0):%tS%n" , date); //L的使用 System.out.printf( "3位数字的毫秒(不足3位前面补0):%tL%n" , date); //N的使用 System.out.printf( "9位数字的毫秒数(不足9位前面补0):%tN%n" , date); //p的使用 String str = String.format(Locale.US, "小写字母的上午或下午标记(英):%tp" , date); System.out.println(str); System.out.printf( "小写字母的上午或下午标记(中):%tp%n" , date); //z的使用 System.out.printf( "相对于GMT的RFC822时区的偏移量:%tz%n" , date); //Z的使用 System.out.printf( "时区缩写字符串:%tZ%n" , date); //s的使用 System.out.printf( "1970-1-1 00:00:00 到现在所经过的秒数:%ts%n" , date); //Q的使用 System.out.printf( "1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n" , date); } |
Math
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@Test public void test3(){ BigDecimal d = new BigDecimal( "123" ); BigDecimal e = new BigDecimal( "14455552" ); System.out.println(Math.pow( 123 , 12 )); System.out.println(d.pow( 12 )); System.out.println(Math.ceil( 12.3 )); //ceil,天花板 13.0 System.out.println(Math.floor(- 12.3 )); //ceil,地板 -13.0 System.out.println(Math.round( 13.3 )); //四舍五入 13 System.out.println(Math.round(- 13.5 )); //四舍五入 -13 System.out.println(Math.round(- 13.2 )); //四舍五入 -13 System.out.println(Math.round(- 13.7 )); //四舍五入 -14 } |
随机数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//随机数 @Test public void test4(){ System.out.println(Math.random()); //返回一个随机数>=0,+b1 //0-100(不包括100) int a =( int )(Math.random()* 100 ); //0-100(包括100) int b =( int )(Math.random()* 101 ); //30-100(包括100) int c =( int )(Math.random()* 71 + 30 ); //0-10 int d = ( int )(Math.random()* 10 ); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(d); } |
1
2
3
4
5
6
|
@Test public void test5(){ Random r = new Random(); int a = r.nextInt( 101 ); //0-100 } |
simpledateformat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
@Test public void testId() throws ParseException{ String s = "411123199409203013" ; if (s.length()== 18 ){ String b = s.substring( 6 , 14 ); String sex = Integer.parseInt(s.substring( 14 , 17 ))% 2 == 0 ? "女" : "男" ; SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd" ); Date birth = sdf.parse(b); //将一个日期字符串按指定的格式解析成日期对象 sdf = new SimpleDateFormat( "yyyy年MM月dd日" ); System.out.println( "你的生日是" +sdf.format(birth)+ ",你的性别是" +sex); String f = String.format( "你的生日是%1$TY年%1$Tm月%1$Td日,你的性别是%2$s" , birth,sex); System.out.println(f); } else if (s.length()== 15 ){ String b = s.substring( 6 , 14 ); String sex = Integer.parseInt(s.substring( 14 , 17 ))% 2 == 0 ? "女" : "男" ; SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMdd" ); Date birth = sdf.parse(b); //将一个日期字符串按指定的格式解析成日期对象 sdf = new SimpleDateFormat( "yyyy年MM月dd日" ); System.out.println( "你的生日是" +sdf.format(birth)+ ",你的性别是" +sex); //format将日期对象生成指定格式的字符串 } |
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/qq_18333833/article/details/47358347