字符串格式化和占位符

https://www.cnblogs.com/Dhouse/p/7776780.html

 

常规类型的格式
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。
format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。

显示不同转换符实现不同数据类型到字符串的转换,如图所示。

 

转  换  符

说    明 

示    例

%s

字符串类型

"mingrisoft"

%c

字符类型

'm'

%b

布尔类型

true

%d

整数类型(十进制)

99

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

99.99

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

 

%h

散列码

 

%%

百分比类型

%n

换行符

 

%tx

日期与时间类型(x代表不同的日期与时间转换符

 

 

如果有字符串 “我是{0},我来自{1},今年{2}岁。 请问怎样用String的内置方法用替换掉字符串的占位符:比如“我是中国人,我来自北京,今年22岁”。

(1)JDK 中有正好有这功能:java.text.MessageFormat
而 java.text.MessageFormat 正好用的是 {0}, {1},所以String str = MessageFormat.format("我是{0},我来自{1},今年{2}岁", "中国人", "北京", "22");
MessageFormat.format 方法从 JDK 5 开始支持变参,可以直接用逗号添加参数。

 

posted @ 2017-06-16 10:55  malcome  阅读(2023)  评论(0)    收藏  举报