Regex для преобразования CamelCase в camel_case в Java

Я понимаю, почему желаемый вывод не дается для преобразования с помощью регулярного выражения строки, какFooBar вFoo_Bar который вместо этого даетFoo_Bar_, Я мог бы сделать что-то с String.substringsubstring(0, string.length() - 2) или просто заменили последнего персонажа, но я думаю, что есть лучшее решение для такого сценария.

Вот код:

<code>String regex = "([A-Z][a-z]+)";
String replacement = "$1_";

"CamelCaseToSomethingElse".replaceAll(regex, replacement); 

/*
outputs: Camel_Case_To_Something_Else_
desired output: Camel_Case_To_Something_Else
*/
</code>

Вопрос: Ищете более аккуратный способ получить желаемый результат?

Ответы на вопрос(9)

Ваш ответ на вопрос