Я изменил свой предыдущий ответ, включив в него некоторые особые случаи.
К ним относятся:
- строка начинается с повторяющихся цифр (например, 111 .....)
- пустая строка
- строка содержит только повторяющиеся цифры (например, 1122334455)
- серия различных повторяющихся цифр (например, 11122233365 ...)
- серия различных повторов в строке (например, 4311122233398)
String[] testCases = {
"2111222333594454555", "333555666540922229789", "", "54", "111",
"111222333"
};
for (String s : testCases) {
String[] ss = s.replaceAll("(\\d)\\1+", "AA")
.replaceAll("^[A]+", "")
.split("[A]+");
System.out.println(Arrays.toString(ss));
}
}
Первый replaceAll заменяет все повторяющиеся цифры на AA.Второй удаляет повторяющиеся буквы А с начала строки.Раскол распадается на повторяющиеся буквы А.