Разделение строки по 3 символа

В данной строчке кода (в теории) должен объявляться массив, в который присваивается огромное предложение без пробелов, разделённое по три символа (случаи, когда кол-во символов в предложении не кратно трём отбросим). Почему-то не пашет регулярное выражение и в массив присваивается пустота.

String text="111222333444555666777888999aaabbbcccdddeeefff"
String[] triples = text.split("\\S{3}");

Ответы (1 шт):

Автор решения: gil9red

Метод split сделает разделение по строке и вернет массив строк, без разделителя, поэтому этот метод может вам не подойти.

Используйте матчинг через Pattern.matcher:

String text = "111222333444555666777888999aaabbbcccdddeeefff";
Pattern pattern = Pattern.compile("\\S{3}");
Matcher m = pattern.matcher(text);

List<String> triples = new ArrayList<>();
while (m.find()) {
    triples.add(m.group());
}
System.out.println(triples);
// [111, 222, 333, 444, 555, 666, 777, 888, 999, aaa, bbb, ccc, ddd, eee, fff]
→ Ссылка