Entiendo por qué la salida deseada no se le da el uso de expresiones regulares para convertir una cadena como FooBar
a Foo_Bar
que da lugar Foo_Bar_
. Podría haber hecho algo con String.substring substring(0, string.length() - 2)
o simplemente reemplazar el último carácter, pero creo que hay una mejor solución para tal escenario.
Aquí está el código:
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
*/
Pregunta: ¿Busca una forma más ordenada de obtener el resultado deseado?