Подтвердить что ты не робот

Есть ли флаг форматирования, который преобразуется в строчную строку в Java?

В Java есть два заполнителя, которые преобразуются в строку:

  • %s - преобразуется в строку as-is
  • %s - преобразуется в строчную строку.

Таким образом, учитывая:

String result = String.format(template, "Hi James!");
  • Если template = "%s", результат будет "Hi James!"
  • Если template = "%s", результат будет "Hi James!"

Вопрос:

Как правило, существует способ преобразования аргумента в строчную строку с использованием только синтаксиса преобразования формата Java? (Другими словами, без использования toLowerCase().)
В частности, существует ли какое-либо возможное значение для template, так что результат будет "Hi James!"?

4b9b3361

Ответ 1

Нет, нет. Но, согласно Документам по Java:

Конверсии, обозначенные символом верхнего регистра (т.е. "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();

Оптимизация не будет выполнена путем преобразования с использованием флага.