Rozumiem, dlaczego żądane dane wyjściowe nie są podawane do konwersji za pomocą wyrażenia regularnego na ciąg podobny FooBar
do Foo_Bar
który zamiast tego daje Foo_Bar_
. Mogłem coś zrobić z String.substring substring(0, string.length() - 2)
lub po prostu zamienić ostatni znak, ale myślę, że jest lepsze rozwiązanie takiego scenariusza.
Oto kod:
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
*/
Pytanie: Szukasz lepszego sposobu na uzyskanie pożądanego wyniku?