一、String.format()概述
在Java中,String类的format()方法可以用于格式化字符串输出。它相当于C中的printf()函数,可以将格式化字符串中的占位符替换成指定的值。
具体来说,String.format()方法的第一个参数是一个格式字符串,其中的格式说明符指定了占位符的位置、宽度、精度等信息。第二个参数开始是占位符要替换的值。如果格式字符串中有多个占位符,则需要为每个占位符指定一个对应的值,多余的值将被忽略。
下面是一个简单的代码示例:
String name = "Alice"; int age = 20; double height = 1.68; String message = String.format("My name is %s, I'm %d years old, and I'm %.2f meters tall", name, age, height); System.out.println(message);
上面的代码创建了一个字符串message,它使用了格式化字符串"My name is %s, I'm %d years old, and I'm %.2f meters tall",其中%s、%d和%.2f分别是对应的占位符。第二行调用了String.format()方法,使用name、age和height分别替换了这些占位符,并将结果输出到控制台。其输出结果为:
My name is Alice, I'm 20 years old, and I'm 1.68 meters tall
二、格式说明符
格式说明符是用来指定占位符的格式信息的字符串。它们由%字符和指定占位符类型的字符组成,中间可以包含各种选项和标志位。
下面是一些常用的格式说明符:
- %s:字符串类型
- %d:整数类型
- %f:浮点数类型
- %b:布尔类型
- %c:字符类型
- %n:换行符
- %%:百分号
除了占位符类型,格式说明符还可以包含以下选项:
- 宽度:指定占位符输出的最小宽度,如果输出的值长度不足,则会添加空格以达到指定的宽度。例如,%10d表示输出的整数至少是10位宽度,不足部分用空格填充。
- 精度:用于限制输出的数字的小数位数,通常用于浮点数类型。例如,%.2f表示输出的浮点数只有2位小数。
- 标志位:用于指定输出值的格式。例如,-表示左对齐,+表示在正数前显示加号,0表示用0填充不足的位数。
下面是一些示例:
int value = 123; String.format("%10d", value); // 输出:" 123" String.format("%.2f", Math.PI); // 输出:"3.14" String.format("%+d", value); // 输出:"+123" String.format("%05d", value); // 输出:"00123"
三、使用实例
1. 格式化日期和时间
String.format()方法也可以用于格式化日期和时间。Java中提供了SimpleDateFormat类来进行日期和时间的格式化。
下面是一个例子,将当前时间格式化为"yyyy-MM-dd HH:mm:ss"的形式:
Date now = new Date(); String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now); System.out.println(formattedDate);
上面的代码首先获取当前时间,然后使用SimpleDateFormat类将时间格式化为指定的形式,最后将结果输出到控制台。输出结果类似于:
2022-01-01 12:34:56
2. 格式化十六进制数
String.format()方法还可以用于格式化整数为十六进制数,并且可以控制输出的位数。
例如,下面的代码将数字15格式化为4位的十六进制数:
int value = 15; String hexString = String.format("%04X", value); System.out.println(hexString);
输出结果为:
000F
3. 填充固定宽度
有时候需要输出一些固定宽度的字符串,不足的部分需要用空格填充。
下面的代码通过使用String.format()方法,输出一个二维数组,其中每个数字都是5位宽度:
int[][] data = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; for (int[] row : data) { for (int value : row) { String formattedValue = String.format("%5d", value); System.out.print(formattedValue + " "); } System.out.println(); }
输出结果为:
1 2 3 4 5 6 7 8 9
四、小结
本文介绍了Java中String.format()方法的用法和格式说明符,以及使用实例。使用String.format()方法可以使输出的字符串更加美观和易读。