Я пытаюсь перевести строку и поставить подчеркивание перед любым заглавным символом. Ближайшее, что у меня есть, это:
out=in.replaceAll("([^_])([A-Z])","$1_$2");
но с "ABCDEF"
он возвращает "A_BC_DE_F"
, я думаю, потому что после рассмотрения "AB", он не смотрит на "BC", потому что "B" уже был в предыдущем матче. Конечно, я мог бы применить его дважды, но есть ли более элегантное решение?
Также есть:
out=in.replaceAll("([A-Z])","_$1");
но к нему добавляется ведущий "_"
.
Java 1.8, если это имеет значение