java的字符串格式化——String.format()和
System.out.print。。。
引⾔
String类的format()⽅法⽤于创建格式化的字符串以及连接多个字符串对象。熟悉C语⾔应该记得C语⾔的sprintf()⽅法,两者有类似之处。format()⽅法有两种重载形式。
重载
// 使⽤当前本地区域对象(Default()),制定字符串格式和参数⽣成格式化的字符串
String String.format(String fmt, args);
// ⾃定义本地区域对象,制定字符串格式和参数⽣成格式化的字符串
String String.format(Locale locale, String fmt, args);
为了便于在console中输出格式化的内容,java也提供⼀个printf(String fmt, args); ⽅法,可⽤于简化println()⽅法中对格式化字符串输出的书写要求,⽐如以下两条语句在语法上是等价的:
System.out.println(String.format("%,6.1f",45.6789));
System.out.printf("%,6.1f",45.6789);
占位符
格式化说明最多会有5个部分(不包括%符号) . 下⾯的[]符号⾥⾯都是选择性的项⽬,因此只有%与type是必要的. 格式化说明的顺序是有规定的,必须要以这个顺序章指定.
举个例⼦:
以下语句格式化输出⼀个由逗号分隔的浮点数,数据占6个字符位置,不⾜6位在左边⽤空格补齐,1位⼩数:
System.out.println(String.format("%,6.1f",42.000));//返回结果为: 42.0
超过⼀项以上的参数时
把新的参数加到后⾯,因此会有3个参数来调⽤format()⽽不是两个,并且在第⼀个参数中,也就是格式化串中,会有两个不同的格式化设定,也就是两个%开头的字符组合,第⼆个会应⽤在第⼀个%上⾯,第三个参数会⽤在第⼆%上,也就是参数会依照顺序应⽤在%上⾯" 。
int one = 123456789;
double two = 123456.789;
String s = String.format("第⼀个参数:%,d 第⼆个参数:%,.2f", one, two);
System.out.println(s);
转换符
转换符的标志
对字符串进⾏格式化
⽰例——将"hello"格式化为"hello "(左对齐)
String raw = "hello word";
String str = String.format("|%-15s|", raw);
System.out.println(str);
对整数进⾏格式化
⽰例——将-1000显⽰为(1,000)
int num = -1000;
String str = String.format("%(,d", num);
System.out.println(str);
格式化命令format参数对浮点数进⾏格式化
double num = 123.456789;
System.out.print(String.format("浮点类型:%.2f %n", num)); System.out.print(String.format("⼗六进制浮点类型:%a %n", num)); System.out.print(String.format("通⽤浮点类型:%g ", num));
对⽇期时间进⾏格式化
⽇期的转换符
时间的转换符
实例
Date date = new Date();
System.out.printf("全部⽇期和时间信息:%tc%n",date);
System.out.printf("年-⽉-⽇格式:%tF%n",date);
System.out.printf("⽉/⽇/年格式:%tD%n",date);
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
System.out.printf("HH:MM格式(24时制):%tR",date);
此⽅法不是很常⽤,在此就当做笔记记录⼀下,对它有个⼤概的了解,说实话到现在写项⽬基本没⽤上。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论