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

目录
相关文章
|
2月前
|
移动开发 监控 开发者
webuploader上传插件源代码重点难点分析
WebUploader 是一个基于 HTML5 的文件上传插件,提供了多种功能和交互方式,支持拖拽、选择文件、分片上传、图片预览、上传进度等特性。它兼容主流浏览器,并且能够应对复杂的上传需求,如大文件上传和断点续传。 在分析 WebUploader 的源代码时,重点可以放在文件上传的核心功能、事件管理、拖拽上传、进度显示、分片上传的实现方式等方面。 以下是对 WebUploader 源代码的重点和难点的分析。
156 4
|
2月前
|
XML JSON Java
HttpServletRequest 的三个方法request.getParameter()、request.getInputStream()、request.getReader()
在 Java Web 开发中,HttpServletRequest 是处理 HTTP 请求的接口,提供了多种方法用于获取客户端请求的不同类型的数据。三种常见的方法是 getParameter()、getInputStream() 和 getReader()。它们各自的作用和使用场景有所不同,下面详细解释这三个方法的区别与应用。
444 4
|
2月前
|
机器学习/深度学习 XML Java
【spring boot logback】日志logback格式解析
在 Spring Boot 中,Logback 是默认的日志框架,它支持灵活的日志格式配置。通过配置 logback.xml 文件,可以定义日志的输出格式、日志级别、日志文件路径等。
466 5
|
2月前
|
人工智能 JSON JavaScript
用 AI + 高德地图 MCP,3 小时做出杭州美食地图
本文记录了一次从灵光一现到快速落地的 AI + 地图服务实践,通过结合 Cursor 与高德 MCP 地图服务平台,作者仅用几个小时就实现了一个可交互、可筛选、可推荐的杭州美食地图应用。
561 23
用 AI + 高德地图 MCP,3 小时做出杭州美食地图
|
2月前
|
运维 监控 关系型数据库
AI 时代的 MySQL 数据库运维解决方案
本文探讨了大模型与MySQL数据库运维结合所带来的变革,介绍了构建结构化运维知识库、选择合适的大模型、设计Prompt调用策略、开发MCP Server以及建立监控优化闭环等关键步骤。通过将自然语言处理能力与数据库运维相结合,实现了故障智能诊断、SQL自动优化等功能,显著提升了MySQL运维效率和准确性。
328 18
|
2月前
|
JavaScript 前端开发 开发者
jQuery-ui源代码重点难点分析
jQuery UI 是一个功能强大的 jQuery 插件库,旨在帮助开发者快速构建用户交互界面。它提供了丰富的 UI 组件(如日期选择器、对话框、自动完成、拖放等),并且与 jQuery 无缝集成。jQuery UI 的核心思想是简化常见的界面交互,并通过丰富的配置选项和动画效果,增强用户体验。
47 6

热门文章

最新文章