There are two placeholders in Java that convert to a String:
%s
-- converts to a String as-is %S
-- converts to an Uppercase String. Thus, given:
String result = String.format(template, "Hi James!");
"%s"
, the result will be "Hi James!"
"%S"
, the result will be "HI JAMES!"
Question:
Generally, is there a way to convert an argument to a lowercase String using only Java's format conversion syntax? (In other words, without using toLowerCase()
.)
Specifically, is there any possible value for template
such that the result will be "hi james!"
?
No, there is not. But, according to Java Docs :
Conversions denoted by an upper-case character (ie 'B', 'H', 'S', 'C', 'X', 'E', 'G', 'A', and 'T') are the same as those for the corresponding lower-case conversion characters except that the result is converted to upper case according to the rules of the prevailing
Locale
. The result is equivalent to the following invocation ofString.toUpperCase()
In other words, the following
String result = String.format("%S", "Hi James!");
is equivalent to
String result = String.format("%s", "Hi James!").toUpperCase();
So, if you want to get a lower case string, you can just do:
String result = String.format("%s", "Hi James!").toLowerCase();
There won't be an optimization by doing the conversion using a flag.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.