在Java中,我们经常需要将数据格式化为特定的字符串格式并进行输出或者展示。String.format()方法提供了一种方便的方式来进行字符串格式化,对于Java程序员而言,String.format()是必知必会的常用工具之一,它可以将任何Java对象格式化为字符串。本文将详细探讨Java String.format()的常用格式,包括整数、浮点数、日期和时间等。
一、整数格式化
对于整数的格式化,我们可以指定一个格式化字符串,该字符串由百分号(%)来引领和结束,并且可以包含有以下的转换标志之一:
- %o: 以八进制字符串形式表示整数。
- %x: 以十六进制字符串形式表示整数。
- %d: 十进制整数形式。
- %s: 字符串形式。
- %c: 字符形式。
下面是几个示例:
// 十进制整数形式 int num = 123; String str1 = String.format("%d", num); // "123" // 八进制整数形式 String str2 = String.format("%o", num); // "173" // 十六进制整数形式 String str3 = String.format("%x", num); // "7b" // 字符串形式 String str4 = String.format("%s", num); // "123"
二、浮点数格式化
对于浮点数的格式化,我们可以同样指定一个格式化字符串,该字符串由百分号(%)来引领和结束,并且可以包含有以下的转换标志之一:
- %f: 十进制浮点数形式。
- %e: 科学计数法表示浮点数形式。
- %g: 通用浮点数表示,根据情况自动选用%e或%f。
下面是几个示例:
// 十进制浮点数形式 double dbl = 123.456; String str5 = String.format("%f", dbl); // "123.456000" // 科学计数法表示浮点数形式 String str6 = String.format("%e", dbl); // "1.234560e+02" // 通用浮点数表示 String str7 = String.format("%g", dbl); // "123.456"
三、日期和时间格式化
对于日期和时间的格式化,我们同样可以指定一个格式化字符串,并且可以包含有以下的转换标志之一:
- %tH: 时(00-23)。
- %tI: 时(01-12)。
- %tM: 分钟(00-59)。
- %tS: 秒(00-59)。
- %tL: 毫秒数(000-999)。
- %tN: 纳秒数(000000000-999999999)。
- %tp: 指示“上午”或“下午”。
- %tz: 时区(如Pacific Standard Time)。
- %tZ: 时区缩写(如PST)。
- %tm: 月份(01-12)。
- %td: 一个月中的日期(01-31)。
- %ty: 年份(如2019)的最后两位数字。
- %tY: 完整的年份,如“2019”而非“19”。
- %tj: 一年中的第几天(001-366)。
- %tw: 一年中的第几周(00-53)。
- %tW: 一月中的第几周(00-53)。
下面是几个示例:
// 完整时间日期表示 Date dt = new Date(); String str8 = String.format("%tc", dt); // "星期三 十月 23 14:02:23 CST 2019" // 仅日期表示 String str9 = String.format("%tF", dt); // "2019-10-23" // 仅时间表示 String str10 = String.format("%tT", dt); // "14:02:23" // 12小时制表示时间 String str11 = String.format("%tr", dt); // "02:02:23 下午"
结语
在Java中,String.format()是非常有用的工具,它允许程序员将各种Java对象格式化为字符串。本文通过几个例子详细讲解了Java String.format()的常用格式,涉及整数、浮点数、日期和时间等,以帮助Java程序员更好地使用该方法,并且编写更加优美、可读性更强的代码。