Java:
字符串插值
How to: 怎样进行字符串插值?
public class StringInterpolationExample {
public static void main(String[] args) {
String name = "小明";
int age = 25;
// 使用String.format()
String greeting = String.format("你好, %s。你今年 %d 岁。", name, age);
System.out.println(greeting); // 输出: 你好, 小明。你今年 25 岁。
// Java 15起, 可以使用文本块(Text Blocks)进行字符串插值
String story = """
%s正坐在房间里,此时他%s岁。
""".formatted(name, age);
System.out.println(story.trim()); // 输出: 小明正坐在房间里,此时他25岁。
}
}
Deep Dive 深入探讨
在Java历史上,字符串插值不像在其他一些语言中那么直接。初期,程序员通常会使用字符串连接操作符(+
)来组合字符串和其他类型的值。这样的方法简单却低效,尤其是在拼接多个变量或处理大量数据时。
String.format()
是后来提供的一个更强大的工具,它使用占位符和类型指定符,使得字符串模板和变量值的组合更加灵活和强大。Java 15 引入的文本块(Text Blocks)提供了一个新的方式来简化多行字符串的创建,并与formatted()
方法结合使用,来实现更为简洁的字符串插值。
替代方案包括使用StringBuilder
或StringBuffer
进行字符串拼接,这对性能有所提升。