java字符串格式化
目录
简介
本文主要会介绍下面几种格式化的方式。
String.format()
System.out.printf()
严格来说, 这并不是一种字符串格式化的方法。MessageFormatter.format()
主要内容
String.format()
这是一个 较为常用的 格式化方法, 类似 C语言的 sprintf()
函数。
先给出几个示例 。
|
|
看了上面的代码, 应该对这个方法有了一定的了解了, 下面来详细说明以下。
%
开头的 叫占位符
, \
开头的叫做转义字符
。
本文出现的 转移字符如下 。
转移字符 | 含义 |
---|---|
\t | 制表,一般表示4个或者8个空格 |
\n | 换行 LF (Line Feed) |
\r | 回车 CR (Carriage Return) |
\r\n | windows 换行 CRLF |
本文出现的 占位符如下
占位符 | 含义 |
---|---|
%% | % |
%s | 字符串占位 |
%d | 数字占位 (int,long,short) |
%f | 浮点数 占位 (float, double) |
%n | 换行, 自动适应系统 |
%b | 布尔值 |
其他说明
%.2f
是一种略微高级的用法, 用于保留两位小数 。
看看下面的这段代码。
|
|
%1$+020.10f
这一长段的含义是 。
- % 格式开始的符号 ,也可以理解为占位符开始的地方。
- 1$ 参数索引,也可以用
<
符号来指定 前一个变量 - +0 flags
- 20 宽度,低于这个宽度自动补0
- .10 浮点数长度
- f 转换字符, 代表 浮点数
日期
格式化日期 , 先看几个示例。
|
|
详细说明下 %t
后面跟的内容
字符 | 含义 |
---|---|
H,M,S | 小时,分钟,秒 |
L,N | 时间的毫秒和纳秒部分 |
p | am/pm 上午,下午的字符串内容 |
z | 时区 偏移的小时数 |
A,B,Y | 星期几(英文), 月份的名字(英文) , 年份(数字) |
d | 两位数字显示的 今天是当月的第几天 |
m | 两位数字显示的月份 |
y | 两位数字显示的年份 |
System.out.printf()
本方法是格式化字符串,然后输出到控制台。
使用方法约等于 String.format()
。
MessageFormatter()
我时候的时候非常简单, 像下面这种方式使用
|
|
MessageFormat.format()
方法里面的第一个参数和String.format
()的第一个参数的格式并不一样。
似乎在简单使用的话, 只需要使用 {Index}
这个占位符就好了。
这里有一篇详细介绍此内容的文章 https://vence.github.io/2016/04/29/javamethod-messageformat/
参考链接
https://vence.github.io/2016/04/29/javamethod-messageformat/
https://docs.oracle.com/javase/tutorial/essential/io/formatting.html
https://www.runoob.com/w3cnote/java-printf-formate-demo.html 菜鸟教程,中文内容