You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java字符串拼接除+外,是否有类似Python的.format或f-string方法?

Java中的字符串拼接方案(对应Python的.format与f-string)

Java并不只能通过+运算符拼接字符串,有多种和Python中.format()、f-string类似的灵活方式,以下是具体实现:

1. String.format() —— 对应Python的str.format()

这个方法通过占位符实现字符串格式化,用法和Python的.format()逻辑相近:

String name = "Eduardo";
String surname = "Garcia";
// 使用%s作为字符串占位符,按顺序传入参数
System.out.println(String.format("Hello %s %s", name, surname));

除了%s,还支持%d(整数)、%f(浮点数)等类型占位符,满足不同数据类型的格式化需求。

2. 模板字符串(Java 17+)—— 对应Python的f-string

Java 17及以后引入了模板字符串,可以直接在字符串中嵌入变量,和Python的f-string几乎一致:

String name = "Eduardo";
String surname = "Garcia";
// 使用STR."..."语法,变量用\{ }包裹
System.out.println(STR."Hello \{name} \{surname}");

如果需要多行文本,也可以结合文本块使用:

String userInfo = STR."""
    用户信息:
    姓名:\{name}
    姓氏:\{surname}
    """;
System.out.println(userInfo);

如果使用Java 15-16版本,可以用文本块配合formatted()方法实现类似效果:

String greeting = """
    Hello {0} {1}
    """.formatted(name, surname);
System.out.println(greeting);

3. StringBuilder/StringBuffer —— 高效拼接场景

如果需要频繁拼接字符串(比如循环中),推荐使用StringBuilder(非线程安全,性能更高)或StringBuffer(线程安全),避免+运算符多次创建String对象带来的性能损耗:

String name = "Eduardo";
String surname = "Garcia";
StringBuilder sb = new StringBuilder();
sb.append("Hello ").append(name).append(" ").append(surname);
System.out.println(sb.toString());

内容的提问来源于stack exchange,提问作者Eduardo García de Marina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:00:43