В данной строчке кода (в теории) должен объявляться массив, в который присваивается огромное предложение без пробелов, разделённое по три символа (случаи, когда кол-во символов в предложении не кратно трём отбросим). Почему-то не пашет регулярное выражение и в массив присваивается пустота.
String text="111222333444555666777888999aaabbbcccdddeeefff"
String[] triples = text.split("\\S{3}");
Метод 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]
Можно сначала добавить пробелы через каждые 3 символа, а потом разделить по ним:
String text = "111222333444555666777888999aaabbbcccdddeeefff";
String[] triples = text.replaceAll("(.{3})","$1 ").split(" ");
System.out.println(Arrays.toString(triples));
// [111, 222, 333, 444, 555, 666, 777, 888, 999, aaa, bbb, ccc, ddd, eee, fff]
См. Разбить строку на триады
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Я не могу понять, почему в NetBeans у меня вылетает исключение NoSuchElementException ещё до ввода данныхДо этого программу запускал в VS Code, и там всё работало...
WebSecurityConfigjava
я - новичок, так что не судите строгоЯ разрабатываю приложение на Java под Android
У меня есть задача, нужно сделать фильтры для стримов с разными типами объектов