您的位置:

Java格式化

一、格式化字符串

Java中提供了String类的format方法,可以通过指定格式将字符串中的各种数据类型格式化成特定的形式。

// 格式化整数
String intStr = String.format("%d", 123); // intStr = "123"

// 对齐和填充
String str = String.format("%5d", 123); // str = "  123"
str = String.format("%-5d", 123); // str = "123  "
str = String.format("%05d", 123); // str = "00123"
str = String.format("%+d", 123); // str = "+123"

// 格式化浮点数
String doubleStr = String.format("%.2f", 123.456); // doubleStr = "123.46"

在使用format方法时,需要指定转换字符,如%d表示格式化整数,%f表示格式化浮点数,%.2f表示保留两位小数的浮点数等等。在使用过程中,还可以对齐、填充、格式化正负数等。

二、格式化日期时间

Java中提供了SimpleDateFormat类,可以将日期类型格式化成字符串。

// 按指定格式格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String dateStr = sdf.format(new Date()); // dateStr的格式如:2020年01月01日 12:00:00

// 按指定时区格式化日期
sdf.setTimeZone(TimeZone.getTimeZone("GMT+8:00")); // 设置时区为东八区
dateStr = sdf.format(new Date()); // dateStr的值会相应地改变

在使用SimpleDateFormat时,需要指定日期字符串的格式,如yyyy表示年份,MM表示月份,dd表示日期等等。还可以通过setTimeZone方法指定时区。

三、格式化数字

Java中提供了NumberFormat类,可以将数字类型格式化成字符串。

// 格式化数字
NumberFormat nf = NumberFormat.getInstance();
String numStr = nf.format(123456789); // numStr的格式如:123,456,789

// 指定小数位数,以及货币符号
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setCurrencySymbol("¥"); // 设置货币符号为¥
DecimalFormat df = new DecimalFormat("###,###.##", dfs);
df.setMinimumFractionDigits(2); // 设置最小小数位为2
df.setMaximumFractionDigits(5); // 设置最大小数位为5
String currencyStr = df.format(1234.56789); // currencyStr的格式如:¥1,234.57

在使用NumberFormat类时,可以指定数字字符串的格式,如###,###.##表示以千为分隔符,最多有5位小数等等。还可以通过setMinimumFractionDigits、setMaximumFractionDigits等方法指定小数位数。

四、结语

Java中提供了多种格式化方式,可以将各种数据类型格式化成符合特定规则的字符串。开发者可以根据需要选用对应的方式,以达到更好的输出效果。