字符串被广泛应用于Java编程之中,在Java中字符串是属于对象的,Java提供了String类的创建和操作字符串函数。输出格式化数字可以使用printf()和format()方法。String类使用静态方法format()返回一个String对象而不是PrintStream对象。String类的静态方法format()能用来创建可复用的格式化字符串,而不仅仅是用于一次打印输出,本站素文宅 www.yoodb.com 下面就为大家说说格式化字符串。
使用指定格式字符串格式化字符串参数,具体Java源码如下:
public static String format(String format, Object ... args) { return new Formatter().format(format, args).toString(); }
使用指定的语言环境(本地语言环境),格式字符串返回一个格式化字符串和参数,具体Java源码如下:
public static String format(Locale l, String format, Object ... args) { return new Formatter(l).format(format, args).toString(); }
1)不同转换符实现不同数据类型到字符串的转换,具体如下所示:
转换符 说明 示例
%s 字符串类型 "mingrisoft"
%c 字符类型 'm'
%b 布尔类型 true
%d 整数类型(十进制) 99
%x 整数类型(十六进制) FF
%o 整数类型(八进制) 77
%f 浮点类型 99.99
%a 十六进制浮点类型 FF.35AE
%e 指数类型 9.38e+5
%g 通用浮点类型(f和e类型中较短的)
%h 散列码
%% 百分比类型 %
%n 换行符
%tx 日期与时间类型(x代表不同的日期与时间转换符
2)日期事件字符串格式化,具体如下所示:
转换符 说明 示例
c 包括全部日期和时间信息 星期六 十月 8 13:21:20 CST 2016
F “年-月-日”格式 2016-10-08
D “月/日/年”格式 10/08/16
r “HH:MM:SS PM”格式(12时制) 13:21:20 下午
T “HH:MM:SS”格式(24时制) 13:21:24
R “HH:MM”格式(24时制) 13:21
3)时间的字符串格式化,具体如下所示:
转换符 说明 示例
H 2位数字24时制的小时(不足2位前面补0) 15
I 2位数字12时制的小时(不足2位前面补0) 03
k 2位数字24时制的小时(前面不补0) 15
l 2位数字12时制的小时(前面不补0) 3
M 2位数字的分钟(不足2位前面补0) 03
S 2位数字的秒(不足2位前面补0) 09
L 3位数字的毫秒(不足3位前面补0) 015
N 9位数字的毫秒数(不足9位前面补0) 562000000
p 小写字母的上午或下午标记 中:下午 英:pm
z 相对于GMT的RFC822时区的偏移量 +0800
Z 时区缩写字符串 CST
s 1970-1-1 00:00:00 到现在所经过的秒数 1193468128
Q 1970-1-1 00:00:00 到现在所经过的毫秒数 1193468128984
下面举一些常用的案例,具体代码如下:
package com.test; import java.util.Date; import java.util.Locale; /** * 素文宅 www.yoodb.com */ public class Test { public static void main(String args[]) { String str = null; str = String.format("Hi %s", "张三"); System.out.println(str); str = String.format(Locale.ENGLISH,"Hi %s", "Zhang San"); System.out.println(str); Date date = new Date(); System.out.printf("年-月-日格式:%tF%n",date); //printf()函数可以指定类型 str = String.format("%tH", date); str += String.format(":%tM", date); str += String.format(":%tS", date); System.out.println("24时制的时分秒(不足2位前面补0):" + str); } }
输出结果,如下所示:
Hi 张三 Hi Zhang San 年-月-日格式:2016-10-08 24时制的时分秒(不足2位前面补0):14:27:08