是否有格式化标志在Java中转换为小写字符串?

时间:2014-07-24 18:31:33

标签: java string-formatting

Java中有两个占位符可转换为String:

  • %s - 按原样转换为字符串
  • %S - 转换为大写字符串。

因此,给定:

String result = String.format(template, "Hi James!");
  • 如果template = "%s",则结果为"Hi James!"
  • 如果template = "%S",则结果为"HI JAMES!"

问题:

通常,有没有办法只使用Java的格式转换语法将参数转换为小写字符串? (换句话说,不使用toLowerCase()。)具体而言,template是否有任何可能的值,以便结果为"hi james!"

1 个答案:

答案 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();

使用标志进行转换时不会进行优化。