2017-03-02 55 views
-2

如何分割字符串,但是当字符重复时,不要分割?分割一个字符串,但不要在字符重复时分割java

像:

String a = "aHHHbYY"; 
String[] b = a.split(""); 

但我不希望分裂每封信只是`吨重的人。

输出会是这样:

["a", "HHH", "b", "YY"] 
+0

尝试任何事情? – SachinSarawgi

+0

使用for循环,这会让事情变得更容易 – 2017-03-02 12:42:33

+0

在发布之前指定您的问题。 – GensaGames

回答

0

您可以使用正则表达式作为解决方案。这是一个分割和分隔字符并删除重复项的例子。

String input = "aHHHbYY"; 
String[] result = input.replaceAll("(.)\\1{1,}", "$1").split(""); 

将让你:

["a", "H", "b", "Y"] 
+1

一般而言,正则表达式不容易阅读和理解。但无论如何,总是欢迎您为您的答案添加一些说明。除此之外,你的'result'是'[“a”,“H”,“b”,“Y”],但是OP希望这个数组是'[“a”,“HHH”,“b” ,“YY”]' –

+0

@PascalSchneider我回答后更新了问题。大声笑。 – GensaGames

+0

如果你看看帖子的历史,我的评论仍然适用。 –

0

您的问题可以很容易地使用正则表达式来解决。这看起来像这样:

String regex = "(?<=(.))(?!\\1)"; 
String a = "aHHHbYY"; 
String[] b = a.split(regex); 

这给出了你想要的确切输出。如果你想有一个更详细的答案,看看这篇文章:

Split regex to extract Strings of contiguous characters

+0

非常感谢... –

+0

如果你的问题解决了,我将不胜感激,如果你能接受这个答案 –