在 Java 中,String 格式化输出常见有几种方式,下面按使用频率和场景给你总结一下。
String.format()(最常用)和 C 语言的 printf 类似,返回格式化后的字符串。
String name = "Tom";
int age = 18;
String s = String.format("姓名:%s,年龄:%d", name, age);
System.out.println(s);
输出:
姓名:Tom,年龄:18
| 格式符 | 含义 |
|---|---|
%s |
字符串 |
%d |
整数 |
%f |
浮点数 |
%.2f |
保留 2 位小数 |
%n |
换行 |
%x |
十六进制 |
double price = 3.14159;
System.out.println(String.format("价格:%.2f", price));
System.out.printf()(直接输出)适合只打印不保存的场景。
System.out.printf("姓名:%s,年龄:%d%n", "Tom", 18);
MessageFormat(适合多语言 / 占位符)import java.text.MessageFormat;
String result = MessageFormat.format("你好,{0},你今年{1}岁", "Tom", 18);
System.out.println(result);
优点:
0 开始String s = "姓名:" + name + ",年龄:" + age;
⚠️ 复杂格式不建议用 +
String json = """
{
"name": "%s",
"age": %d
}
""".formatted("Tom", 18);
System.out.println(json);
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
LocalDate date = LocalDate.now();
String s = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println(s);
String.formatprintfMessageFormatDateTimeFormatter如果你有具体格式需求(比如对齐、补零、金额、表格),可以直接发出来,我帮你写示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。