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

回到顶部