Regex für die Konvertierung von CamelCase nach camel_case in Java

Ich verstehe, warum die gewünschte Ausgabe für die Konvertierung mit Regex eine Zeichenfolge wie nicht gegeben istFooBar zuFoo_Bar was stattdessen gibtFoo_Bar_. Ich hätte etwas mit String.substring machen könnensubstring(0, string.length() - 2) oder nur das letzte Zeichen ersetzt, aber ich denke, es gibt eine bessere Lösung für ein solches Szenario.

Hier ist der Code:

<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>

Frage: Suchen Sie nach einer saubereren Methode, um die gewünschte Ausgabe zu erzielen?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage