Java:发现大写字母时拆分字符串
我认为这是一个简单的问题,但是我找不到简单的解决方案(例如,少于10行代码:)
我有一个String
诸如"thisIsMyString"
,我需要将其转换为String[] {"this", "Is", "My",
"String"}。
请注意,首字母不是大写。
回答:
您可以将正则表达式使用零宽度正向超前-它可以找到大写字母,但不会将它们包括在定界符中:
String s = "thisIsMyString";String[] r = s.split("(?=\\p{Upper})");
Y(?=X)
,Y
后跟X
,但不包含X
在match中。因此,(?=\\p{Upper})
匹配一个空序列后跟一个大写字母,并将split
其用作定界符。
有关Java
regexp语法的更多信息,请参见javadoc。
顺便说一下,它不起作用thisIsMyÜberString
。对于非ASCII大写字母,您需要Unicode大写字符类而不是POSIX:
String[] r = s.split("(?=\\p{Lu})");
以上是 Java:发现大写字母时拆分字符串 的全部内容, 来源链接: utcz.com/qa/422793.html