我明白为什么没有给出所需的输出来使用正则表达式将字符串转换为 FooBar
到 Foo_Bar
而是给出 Foo_Bar_
我本可以用 String.substring substring(0, string.length() - 2)
做一些事情,或者只是替换最后一个字符,但我认为对于这种情况有更好的解决方案。
这是代码:
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
*/
问题:寻找一种更简洁的方法来获得所需的输出?
原文由 ajmartin 发布,翻译遵循 CC BY-SA 4.0 许可协议
看到这个 问题 和
CaseFormat
来自番石榴在你的情况下,是这样的: