我试图分开:TwitterHashtagIsVeryCOMPLICATED
分割后的字符串,如:Twitter Hashtag Is Very COMPLICATED
我可以使用正则表达式吗?
非常感谢任何建议。
答案 0 :(得分:5)
这应该有效:
str.split("(?<=[a-z])(?=[A-Z])")
这个想法是对小写字母使用零长度lookbehind,对大写字母使用零长度前瞻。此构造仅匹配camel case字符串中的“单词分隔符”。
答案 1 :(得分:2)
编辑 强烈受到dasblinkenlight的回答(+1为此)的启发。 我只在这里更改为Unicode类别以支持Unicode:
String test = "TwitterHashtagIsVeryCOMPLICATED";
for (String splitted: test.split("(?<=\\p{Ll})(?=\\p{Lu})")) {
System.out.println(splitted);
}
输出:
Twitter
Hashtag
Is
Very
COMPLICATED