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