news 2026/6/23 19:46:15

Java占位符全览

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java占位符全览

格式化输出的实用指南

在 Java 中,占位符是格式化字符串输出的利器,让动态生成文本变得简单而优雅。无论是控制台输出、日志记录还是生成报告,掌握这些占位符都能让你的代码更加简洁专业。

---------------------------------------------------------------------------------------------------------------------------------

1. 字符串占位符

占位符说明示例输出
%s字符串String.format("Hello, %s!", "World")Hello, World!
%cUnicode 字符String.format("First character: %c", 'A')First character: A

2. 数值占位符

占位符说明示例输出
%d十进制整数String.format("Age: %d", 25)Age: 25
%x十六进制整数String.format("Hex: %x", 255)Hex: ff
%o八进制整数String.format("Octal: %o", 10)Octal: 12
%f浮点数String.format("Price: %.2f", 5999.99)Price: 5999.99
%e科学计数法String.format("Scientific: %e", 5999.99)Scientific: 5.999990e+03
%a十六进制浮点数String.format("Hex float: %a", 5999.99)Hex float: 0x1.7700000000000p+12

3. 格式化修饰符

修饰符说明示例输出
%,千位分隔符String.format("Price: ¥%,.2f", 5999.99)Price: ¥5,999.99
%.2f保留两位小数String.format("Price: %.2f", 5999.99)Price: 5999.99
%05d5位数字,不足补0String.format("ID: %05d", 25)ID: 00025
%-10s左对齐,10字符宽度String.format("Name: %-10s", "John")Name: John
%+d正数前加+号String.format("Value: %+d", 25)Value: +25

4. 特殊占位符

占位符说明示例输出
%n换行符String.format("Hello%nWorld")Hello<br>World
%b布尔值String.format("Valid: %b", true)Valid: true

二、实战示例

1. 商品信息格式化(你提供的示例)

pw.printf("商品:%s,价格:¥%,.2f,库存:%d%n", "笔记本电脑", 5999.99, 100); // 输出:商品:笔记本电脑,价格:¥5,999.99,库存:100

2. 日志格式化(常见场景)

logger.info("用户 {} 登录成功,IP: {}, 时间: {}", "张三", "192.168.1.1", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); // 输出:用户 张三 登录成功,IP: 192.168.1.1, 时间: 2023-10-25 14:30:45

3. 日期和时间格式化

String dateStr = String.format("今天是 %tF (星期%tA),时间是 %tT", new Date(), new Date(), new Date()); // 输出:今天是 2023-10-25 (星期三),时间是 14:30:45

4. 金额格式化(带货币符号)

String amount = String.format("总金额: ¥%,.2f (人民币)", 123456.78); // 输出:总金额: ¥123,456.78 (人民币)

5. 生成报表

System.out.printf("%-15s | %-10s | %-8s%n", "产品", "价格", "库存"); System.out.printf("%-15s | ¥%,.2f | %-8d%n", "笔记本电脑", 5999.99, 100); System.out.printf("%-15s | ¥%,.2f | %-8d%n", "智能手机", 3999.00, 250); // 输出: // 产品 | 价格 | 库存 // 笔记本电脑 | ¥5,999.99 | 100 // 智能手机 | ¥3,999.00 | 250

三、占位符的高级用法

1. 动态格式化

1int precision = 2; 2String formatted = String.format("Price: %." + precision + "f", 5999.99); 3// 输出:Price: 5999.99

2. 与MessageFormat结合使用

1String pattern = "用户 {0} 在 {1} 登录,IP: {2}"; 2String message = MessageFormat.format(pattern, "张三", new Date(), "192.168.1.1"); 3// 输出:用户 张三 在 Wed Oct 25 14:30:45 CST 2023 登录,IP: 192.168.1.1

3. 生成带格式的文本文件

1try (PrintWriter writer = new PrintWriter("report.txt")) { 2 writer.printf("%-20s | %-10s | %-10s%n", "Product", "Price", "Stock"); 3 writer.printf("%-20s | ¥%,.2f | %-10d%n", "Laptop", 1299.99, 50); 4 writer.printf("%-20s | ¥%,.2f | %-10d%n", "Smartphone", 699.50, 120); 5}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 10:57:20

IO流——解压缩流/压缩流

一、解压缩流/压缩流1.2 解压缩流1.2.1 什么是解压缩流&#xff1f;解压缩流是Java I/O系统中专门用于读取压缩文件的流&#xff0c;它能将压缩后的数据恢复为原始格式。简单来说&#xff0c;就是把.zip、.gz这些压缩文件"打开"的工具。1.2.2 主要解压缩类Java提供了…

作者头像 李华
网站建设 2026/6/23 7:13:28

项目知识——Monorepo(单体仓库)架构详解

monorepo是一种开发策略&#xff0c;简单来说是一种开发思想&#xff0c;这个架构思想适用于任何语言的开发---------------------------------------------------------------------------------------------------------------------------------一、核心概念Monorepo 是一个…

作者头像 李华
网站建设 2026/6/23 16:46:58

项目知识——API端点

API端点就像服务窗口的具体地址&#xff0c;是API中用于执行特定功能的精确访问位置。一句话理解如果说API是一家提供多种服务的银行&#xff0c;那API端点就是每个业务窗口的编号——比如"3号窗口办理存款"、"5号窗口处理贷款"。技术视角的解释一个API端点…

作者头像 李华
网站建设 2026/6/23 3:52:35

代码1:前端具体分析②

所属模块/目录详细分析&#xff1a;路径&#xff1a;/d:/trea/ployment/project24/Foresight-beta-main/Foresight-beta-main/apps/web/src/app/api/email-otp/request/route.ts所属应用&#xff1a;apps/web &#xff08;Next.js 前端应用工作区&#xff09;路由类型&#xff…

作者头像 李华
网站建设 2026/6/23 11:03:51

基于SpringBoot+Vue的学生成绩综合评价方案的设计与实现

开发环境开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mave…

作者头像 李华
网站建设 2026/6/23 4:30:32

基于SpringBoot+Vue的学生答题练习在线平台的设计与实现

开发环境开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Mave…

作者头像 李华