String.format()用法详解

一、占位符类型

占位符 “%” 后面的字母决定了其接受的实际参数的类型。占位符类型有下面几种:

在这里插入图片描述
大写字母表示输出的字母都为大写。

我们平常用的最多的就是 %s、%d 和 %f,偶尔会用到 %t。

二、字符串和整数格式化

// 补齐空格并右对齐:
String.format("%10s, world", "Hello");     // 输出 "     Hello, world"
String.format("%8d", 123);                 // 输出 "     123"

// 补齐空格并左对齐:
String.format("%-10s, world", "Hello");    // 输出 "Hello     , world"
String.format("%-8d", 123);                // 输出 "123     "

// 补齐 0 并对齐(仅对数字有效)
String.format("%08d", 123);                // 输出 "00000123"
String.format("%-08d", 123);               // 错误!不允许在右边补齐 0

// 输出最多N个字符
String.format("%.5s", "Hello, world");       // 输出 "Hello"
String.format("%.5s...", "Hello, world");    // 输出 "Hello..."
String.format("%10.5s...", "Hello, world");  // 输出 "     Hello..."

// 输出逗号分隔数字
String.format("%,d", 1234567);               // 输出 "1,234,567"

三、日期格式化

这个就稍微复杂点,但如果你要在字符串中对文本数字和日期进行混排的话,只调一个方法应该比结合 DateFormat 和 NumberFormat 一起用要方便点。

首先补充一个知识,就是占位符可以指定某个位置的参数,格式为 %n 。例如 。例如 %2 。例如d 表示第二个整形参数。注意这里的 n是 1 开始而不是 0 开始。

格式化日期的时候,需要多个占位符指向同一个参数(以避免同一个参数重复几遍),同时因为 “t” 表示日期时间,所以完整的格式为 %n$tX,其中 X 表示取时间中的哪一部分。X 的可选值例如:Y=年;m=月;d=日;H=时;M=分;S=秒;L=毫秒;A=星期几(名称);B=月份名称;
还有其他的字母。

	// 输出格式为 “Now is         15:04:52, 星期日”
	// 注意 "%1$10tH" 中的 10 同样表示空格补齐 10 位并右对齐
	String.format("Now is %1$10tH:%1$tM:%1$tS, %1$tA", new Date())
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
String.format是一个Java中的方法,用于格式化字符串。它可以通过传入格式字符串和参数来生成格式化的字符串。常用的占位符类型包括%s、%d、%f等。其中%s用于字符串类型,%d用于整数类型,%f用于浮点类型,%c用于字符类型,%b用于布尔类型,%n用于换行符。这些占位符可以根据需要动态地填充不同的数据。 举个例子,使用String.format可以将一些变量值动态地插入到字符串中。比如: String.format("%s来自%s,在%s上学", "张三", "杭州", "杭州电子科技大学")会输出"张三来自杭州,在杭州电子科技大学上学"。 String.format("error: code=%d,message=%s,url=%s", 500, "服务器内部错误", "localhost:8080/index.html")会输出"error: code=500,message=服务器内部错误,url=localhost:8080/index.html"。 String.format("%c字母的后面是%c", 'a', 'b')会输出"a字母的后面是b"。 String.format("%b是错误的,%b是正确的", false, true)会输出"false是错误的,true是正确的"。 String.format("π约等于:%f", 3.1415)会输出"π约等于:3.141500"。 String.format("十六进制π约等于:%a", 3.1415)会输出"十六进制π约等于:0x1.921cac083126fp1"。 String.format("科学计数法π约等于:%e", 3.1415)会输出"科学计数法π约等于:3.141500e00"。 String.format("Hive数据库中like的用法为:%s like concat('%%','%s','%%')", "name", "张三")会输出"Hive数据库中like的用法为:name like concat('%','张三','%')"。 String.format("换行%n")会输出换行符。 使用String.format可以使字符串的拼接更加灵活和易读。可以根据实际需求动态地插入不同的数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值