Это возможно с помощью строкового форматера, но не напрямую с шаблоном.
jshell> String.format("%1$c %2$c", "AB".chars().boxed().toArray())
$10 ==> "A B"
Нам нужно превратить строку в массив объектов, чтобы ее можно было передавать в виде переменных, а шаблон форматирования мог извлекать символы на основе индекса (1$
и 2$
) и форматировать их как символы (c
). .
Гораздо более простым решением регулярных выражений является следующее, которое масштабируется до любого количества символов:
jshell> "ABC^&*123".replaceAll(".", "$0 ").trim()
$3 ==> "A B C ^ & * 1 2 3"
Все одиночные символы заменяются на себя ($0
), за которым следует пробел. Затем последний лишний пробел удаляется с помощью вызова trim()
.