当我们需要将一个字符串和一些占位符组合起来形成一个新的字符串时,该怎么做呢?答案就是使用Java字符串格式化方法。Java字符串格式化方法可以让我们灵活地使用字符串格式化功能,将我们想要的内容组合成一个格式化好的字符串。
1. 字符串格式化的语法
Java字符串格式化方法使用占位符来表示要在新字符串中插入的值。以下是常见的占位符及其类型和示例:
占位符 | 类型 | 示例 |
---|---|---|
%s | 字符串类型 | "Hello, %s!" |
%d | 整型 | "The answer is %d." |
%f | 浮点型 | "The price is %.2f." |
%b | 布尔型 | "It is %b that Java is cool." |
%c | 字符型 | "The first letter is %c." |
%t | 日期和时间类型 | "Today is %tF." |
%% | 百分号 | "The price is 99%%." |
其中,%s表示字符串类型,%d表示整型,%.2f表示保留两位小数的浮点型,%b表示布尔型,%c表示字符型,%t表示日期和时间类型,%%表示百分号。
在字符串中,我们可以通过占位符的方式来插入需要的变量,例如: '%s' 表示需要插入一个字符串变量。
在占位符中还可使用标识符,如下表所示:
标识符 | 含义 |
---|---|
- | 左对齐 |
+ | 输出正负号 |
# | 对8进制和16进制数增加前缀 |
0 | 数字前面补0 |
, | 每3位数字添加一个,号 |
. | 小数点 |
使用示例:
- "%-10s"以左对齐10个字符的方式输出字符串
- "%+d"输出带正负号的数字
- "%08d"前导0填充
2. 字符串格式化的使用
我们先定义一些需要使用的变量:
String name = "Java";
int age = 21;
double price = 99.99;
char grade = 'A';
boolean isCool = true;
接下来我们使用字符串格式化来组合这些变量。示例代码如下:
String message = String.format("Hello, %s! You are %d years old and the price is %.2f. " +
"Your grade is %c and it is %b that Java is cool.", name, age, price, grade, isCool);
System.out.println(message);
输出结果:
Hello, Java! You are 21 years old and the price is 99.99. Your grade is A and it is true that Java is cool.
我们看到,格式化后的字符串里面,占位符(%s %d %.2f %c %b)分别换成了我们传入的变量(name, age, price, grade, isCool)。
再来一个加上标识符的例子:
String message2 = String.format("Hello, %-10s! You are %+d years old and the price is %,d. " +
"Your grade is %c and it is %b that Java is cool.", name, age, (int) price * 100, grade, isCool);
System.out.println(message2);
输出结果:
Hello, Java ! You are +21 years old and the price is 9,999. Your grade is A and it is true that Java is cool.
我们看到,使用了标识符后,左侧添加了空格字符,数字前面添加了加号,价格逗号分位,加上了%。注意,格式化的实际结果是"go east of east"(E字符向左推多出来的字符集合),10字符正好只够输出Java三个字符,不够时补空格。
3. 注意事项
- 如果只有占位符,而没有对应的参数传入,会抛出MissingFormatArgumentException异常
- 如果有多余的参数传入,会抛出TooManyFormatArgsException异常
- 如果有非法的格式化字符,会抛出UnknownFormatConversionException异常
- 如果有将一个字符串变量用 %d 格式化,会抛出java.util.IllegalFormatConversionException异常。
所以,我们在使用字符串格式化方法时需要特别注意数据类型和占位符的匹配。
结论
Java字符串格式化方法可以让我们方便地格式化字符串,可以插入任意类型的变量,灵活性很高。在使用时,需要注意数据类型和占位符的格式匹配。希望本文对读者有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java字符串格式化(String类format方法) - Python技术站