我认为这是一个简单的问题,但我找不到简单的解决方案(例如,少于 10 行代码:)
我有一个 String
例如 "thisIsMyString"
我需要将它转换成一个 String[] {"this", "Is", "我的”,“字符串”}
.
请注意第一个字母不是大写的。
最佳答案
您可以使用零宽度正向前瞻的正则表达式 - 它会找到大写字母,但不会将它们包含在分隔符中:
String s = "thisIsMyString";
String[] r = s.split("(?=\\p{Upper})");
Y(?=X)
匹配 Y
后跟 X
,但不包括 X
匹配。所以 (?=\\p{Upper})
匹配一个空序列后跟一个大写字母,split
使用它作为分隔符。
见 javadoc有关 Java regexp 语法的更多信息。
编辑:顺便说一句,它不适用于 thisIsMyÜberString
。对于非 ASCII 大写字母,您需要一个 Unicode 大写字符类而不是 POSIX 类:
String[] r = s.split("(?=\\p{Lu})");
关于Java:找到大写字母时拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3752636/