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

2022-09-01 05:28:25

Java 中有两个占位符可以转换为字符串:

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

因此,给定:

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

问题:

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


答案 1

没有。但是,根据Java Docs

由大写字符表示的转换(即“B”,“H”,“S”,“C”,“X”,“E”,“G”,“A”和“T”)与相应的小写转换字符的转换相同,只是结果根据现行规则转换为大写。结果等效于以下对 String.toUpperCase() 的调用Locale

换句话说,以下

String result = String.format("%S", "Hi James!");

等效于

String result = String.format("%s", "Hi James!").toUpperCase();

因此,如果您想获得小写字符串,则可以执行以下操作:

String result = String.format("%s", "Hi James!").toLowerCase();

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


答案 2

推荐