在分隔符之前按空格拆分字符串,同时保留它

时间:2013-01-13 01:45:12

标签: java split

好的,所以我搜索了整个谷歌和这个网站,并没有找到一个解决方案,我想要解决这个问题。我有一个字符串,例如“javaRegexConfusion”,我想用大写字母分割,同时也保留它们。这里的问题是,如果我要直接用大写字母分割,一种方法会让我没有字母,而另一种我知道会将它们分成数组中自己的对象。我想要的字符串中的结果是一个由“java”,“Regex”和“Confusion”组成的数组。我完全不确定如何去做。我确信解决方案非常简单,但是我不知道如何说出我要找的内容,因此令人困惑的标题。

编辑:在一个完全偏离主题的任务中找到答案。我并不熟悉所接受的正则表达式,并且永远不会想到

虽然我喜欢AlexWien的回答,但我更喜欢这种方法。在没有资本的地方迭代,然后分裂,而另一个答案的作者在任何资本之前就分裂了。

String[] output = input.split("(?=(?!^)[A-Z])");

我真的很喜欢这种方法,并且很可能从现在开始使用它(太糟糕了,我永远不会记住"(?=(?!^)[A-Z])")而不看它)

1 个答案:

答案 0 :(得分:0)

如果找到一个isUpperCase()然后复制到结果字符串数组的char,则逐个字符地迭代字符串。存储当前位置,并继续..

使用

Character.isUpperCase(s.charAt(pos))