所以我有一个字符串String s = "4433334552223";
,我希望在每个字符更改(每对不同字符之间)之间拆分成数组。 String [] aRay = s.split("IDK");
我希望String数组在{44,3333,4,55,222,3}
之后包含split()
。
我知道怎么用循环这样做,但我只是想知道是否有一个简单的方法来用正则表达式做这个?
答案 0 :(得分:1)
您可以使用backreference来匹配重复的字符:
String s = "4433334552223";
Matcher m = Pattern.compile("(.)\\1*").matcher(s);
while (m.find()) {
System.out.println(m.group());
}
答案 1 :(得分:1)
您可以使用以下代码:
String input ="4433334552223";
final String PATTERN = "(.)(\\1*)";
Matcher m = Pattern.compile(PATTERN).matcher(input);
ArrayList<String> result = new ArrayList<String>();
while(m.find())
{
result.add(m.group(1)+m.group(2));
}
System.out.println(result.toString());
这产生以下输出:
[44, 3333, 4, 55, 222, 3]