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

目录
相关文章
|
4月前
|
Java
介绍String.format()方法中的格式占位符用法。
通过综合使用它们,可以在Java中构造非常具体和高度定制的输出格式。这对于输出报道、创建用户界面或者任何需要精确控制输出格式的场合都非常有用。记住,当使用格式化方法时,需要确保提供的输入参数与占位符类型匹配,否则会抛出 java.util.IllegalFormatException。
630 0
|
4月前
|
移动开发 监控 开发者
webuploader上传插件源代码重点难点分析
WebUploader 是一个基于 HTML5 的文件上传插件,提供了多种功能和交互方式,支持拖拽、选择文件、分片上传、图片预览、上传进度等特性。它兼容主流浏览器,并且能够应对复杂的上传需求,如大文件上传和断点续传。 在分析 WebUploader 的源代码时,重点可以放在文件上传的核心功能、事件管理、拖拽上传、进度显示、分片上传的实现方式等方面。 以下是对 WebUploader 源代码的重点和难点的分析。
232 4
|
4月前
|
XML JSON Java
HttpServletRequest 的三个方法request.getParameter()、request.getInputStream()、request.getReader()
在 Java Web 开发中,HttpServletRequest 是处理 HTTP 请求的接口,提供了多种方法用于获取客户端请求的不同类型的数据。三种常见的方法是 getParameter()、getInputStream() 和 getReader()。它们各自的作用和使用场景有所不同,下面详细解释这三个方法的区别与应用。
743 4
|
应用服务中间件
IDEA出现问题:idea启动tomcat 很慢解决方案
IDEA出现问题:idea启动tomcat 很慢解决方案
1957 0
IDEA出现问题:idea启动tomcat 很慢解决方案
|
缓存 JavaScript Java
SpringBoot集成onlyoffice实现word文档编辑保存
SpringBoot集成onlyoffice实现word文档编辑保存
2385 0
|
4月前
|
机器学习/深度学习 XML Java
【spring boot logback】日志logback格式解析
在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。
796 5
|
4月前
|
Linux C++
每天一个linux命令(8):cp 命令
cp 命令是 Linux 中用于复制文件或目录的命令。它的名字来源于英文单词 copy。这个命令非常常用,特别是在需要备份文件或创建文件副本时。
292 0
|
Java Linux 程序员
记录:Unsatisfied dependency expressed through field 'XxxService'...【亲测有效】
记录:Unsatisfied dependency expressed through field 'XxxService'...【亲测有效】
1795 1
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
28007 0
|
存储 Linux Docker
在Docker中,本地的镜像文件都存放在哪里?
在Docker中,本地的镜像文件都存放在哪里?