Java中有两个占位符可转换为String:
%s
- 按原样转换为字符串%S
- 转换为大写字符串。因此,给定:
String result = String.format(template, "Hi James!");
"%s"
,则结果为"Hi James!"
"%S"
,则结果为"HI JAMES!"
问题:
通常,有没有办法只使用Java的格式转换语法将参数转换为小写字符串? (换句话说,不使用toLowerCase()
。)具体而言,template
是否有任何可能的值,以便结果为"hi james!"
?
答案 0 :(得分:19)
不,没有。但是,根据Java Docs:
由大写字母表示的转化(即'B','H','S','C','X','E','G','A'和'T')与相应的小写转换字符的相同,除了根据普遍
的调用Locale
的规则将结果转换为大写。 结果相当于以下String.toUpperCase()
换句话说,以下
String result = String.format("%S", "Hi James!");
相当于
String result = String.format("%s", "Hi James!").toUpperCase();
所以,如果你想得到一个小写字符串,你可以这样做:
String result = String.format("%s", "Hi James!").toLowerCase();
使用标志进行转换时不会进行优化。