String.format 详解

简介: 在 Java 中,String.format 是一个用于格式化字符串的静态方法。它允许你按照特定的格式将数据插入到字符串中。String.format 通过使用占位符和格式化标记,可以生成具有指定格式的字符串。

语法

String formattedString = String.format(String format, Object... args);
php
70 Bytes
© 菜鸟-创作你的创作
format:格式化字符串,包含一个或多个格式化占位符,用于指定如何格式化各个参数。
args:格式化字符串中占位符的实际参数,这些参数会被插入到格式化字符串中的指定位置。
🎯 常见用途

基本字符串格式化String formatted = String.format("Hello, %s!", "World"); System.out.println(formatted); // 输出:Hello, World!
数字格式化double pi = 3.14159; String formatted = String.format("Value of pi: %.2f", pi); System.out.println(formatted); // 输出:Value of pi: 3.14
整数格式化int num = 123; String formatted = String.format("The number is: %d", num); System.out.println(formatted); // 输出:The number is: 123
宽度和填充String formatted = String.format("|%10s|", "abc"); System.out.println(formatted); // 输出:| abc| 这里 %10s 表示输出的字符串至少占 10 个字符宽度,如果实际字符串短于 10 个字符,则使用空格填充。
格式化日期java.util.Date date = new java.util.Date(); String formattedDate = String.format("Current date: %tF", date); System.out.println(formattedDate); // 输出:Current date: 2025-07-19
🔑 格式化占位符说明

String.format 使用占位符来指示如何格式化输入数据。常见的占位符如下:

整数类型
%d:格式化为十进制整数。
%x:格式化为十六进制整数。
%o:格式化为八进制整数。
int num = 255; String formatted = String.format("Hex: %x", num); System.out.println(formatted); // 输出:Hex: ff
浮动点数类型
%f:格式化为浮动点数(默认显示小数点后 6 位)。
%.2f:保留两位小数。
double pi = 3.141592653589793; String formatted = String.format("Pi to 2 decimal places: %.2f", pi); System.out.println(formatted); // 输出:Pi to 2 decimal places: 3.14
字符串类型
%s:格式化为字符串。
%10s:格式化字符串并右对齐,宽度至少为 10 个字符。
String name = "Alice"; String formatted = String.format("Name: %10s", name); System.out.println(formatted); // 输出:Name: Alice
日期和时间类型
%tF:格式化为 ISO 日期(YYYY-MM-DD)。
%tT:格式化为时间(HH:MM:SS)。
%tD:格式化为日期(MM/DD/YY)。
java.util.Date date = new java.util.Date(); String formatted = String.format("Current date: %tF", date); System.out.println(formatted); // 输出:Current date: 2025-07-19
其他常见占位符
%c:格式化为字符。
%b:格式化为布尔值。
boolean isActive = true; String formatted = String.format("Is active? %b", isActive); System.out.println(formatted); // 输出:Is active? true
🎨 高级格式化选项

  1. 填充与对齐

使用宽度和填充符号,可以控制输出的对齐方式。默认情况下,字符串会右对齐,数字会右对齐。

填充字符:你可以指定一个填充字符,默认为空格。String formatted = String.format("|%-10s|", "left"); System.out.println(formatted); // 输出:|left | 这里的 %-10s 表示字符串左对齐,占 10 个字符宽度,空格用作填充。

  1. 宽度和精度控制

浮动点数的精度:通过 %.2f 这样的语法来控制小数点后的位数。
最小宽度:通过 %10s 这样的语法来指定字符串最小宽度为 10 个字符,若字符串不足 10 个字符,自动填充空格。double value = 123.456789; String formatted = String.format("%.2f", value); System.out.println(formatted); // 输出:123.46

  1. 多重格式化

你可以在同一格式字符串中使用多个占位符来格式化多个数据。

String name = "Alice";
int age = 30;
double height = 1.75;
String formatted = String.format("%s is %d years old and %.2f meters tall.", name, age, height);
System.out.println(formatted);
// 输出:Alice is 30 years old and 1.75 meters tall.
php
236 Bytes
© 菜鸟-创作你的创作
⚠️ 注意事项

字符串长度限制:
如果格式化字符串的长度不足以容纳输出,String.format 会自动扩大输出的长度。但是,如果使用负数宽度或格式不匹配(比如在一个 int 上使用 %s),则会抛出 IllegalFormatException。
性能考虑:
String.format 的性能相对较低,如果你有频繁的格式化操作,可能需要考虑其他方法,如 StringBuilder 或 StringBuffer,特别是在循环中使用时。
总结

String.format 是一个功能强大的字符串格式化工具,能够根据你指定的格式,插入不同类型的变量到字符串中。它提供了丰富的格式控制选项,适用于显示浮动点数、日期、整数、字符串等。掌握 String.format 的用法可以帮助你更灵活地处理字符串,提升代码的可读性和维护性。
https://www.52runoob.com/archives/4110

目录
相关文章
|
XML Oracle Java
如何在Java 9以上版本中解决找不到类JAXBException
升级到新的JDK 你会突然发现原来可以运行的项目突然不能启动了, 报形如 Caused by: java.lang.ClassNotFoundException: javax.xml.bind.PropertyException 的类找不到的错。
3090 0
|
9月前
|
Java
介绍String.format()方法中的格式占位符用法。
通过综合使用它们,可以在Java中构造非常具体和高度定制的输出格式。这对于输出报道、创建用户界面或者任何需要精确控制输出格式的场合都非常有用。记住,当使用格式化方法时,需要确保提供的输入参数与占位符类型匹配,否则会抛出 java.util.IllegalFormatException。
1076 0
swagger3.0中,如何在@GetMapping中写多个参数,包括数组类型的参数
swagger3.0中,如何在@GetMapping中写多个参数,包括数组类型的参数
818 0
|
4月前
|
缓存 JSON 前端开发
Spring Boot集成Thymeleaf模板引擎
Thymeleaf 是现代Java模板引擎,支持HTML静态原型与动态数据融合,前后端可协作开发。通过 `th:*` 标签绑定数据,浏览器可直接预览页面,结合Spring Boot 使用便捷,广泛应用于服务端渲染场景。
|
9月前
|
机器学习/深度学习 XML Java
【spring boot logback】日志logback格式解析
在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。
1616 5
|
安全 Java 开发者
【JAVA】哪些集合类是线程安全的
【JAVA】哪些集合类是线程安全的
|
Java 开发者 Spring
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
1054 7
|
Java
java switch case多个条件
通过本文的介绍,我们详细探讨了Java中 `switch case`语句的多种用法和优化方法。从基本语法到合并多个条件,再到使用枚举、常量和函数优化,`switch case`语句在Java编程中提供了一种灵活且高效的控制流方式。掌握这些技巧,能够编写出更加简洁、可读性强的代码,提高开发效率和代码质量。希望本文能为您在实际开发中提供有价值的参考和指导。
1756 2
|
SQL 存储 BI
如何在 SQL Server 中使用 `CONCAT`
【8月更文挑战第10天】
1643 3
如何在 SQL Server 中使用 `CONCAT`
|
存储 Kubernetes 网络协议
在K8S中,Deployment和Statefulset有何区别?
在K8S中,Deployment和Statefulset有何区别?

热门文章

最新文章