Для служебного класса, проверьте java.util.Scanner . Есть несколько вариантов того, как вы можете решить свою проблему. У меня есть несколько комментариев на ваши вопросы.
Отладчики плохо справляются с ними (регулярные выражения)
Работает ли регулярное выражение или нет, зависит от того, что находится в ваших данных. Есть несколько хороших плагинов, которые вы можете использовать для создания регулярных выражений, например QuickREx для Eclipse, помогает ли отладчик написать правильный анализатор для ваших данных?
Они прерывают поток тех, кто читает исходный код.
Я думаю, это зависит от того, насколько вам удобно с ними. Лично я предпочел бы прочитать разумное регулярное выражение, чем более 50 строк кода для разбора строк, но, возможно, это личное дело.
Сверхурочные регулярные выражения растут органично и становятся монстрами.
Я думаю, что они могли бы, но это, вероятно, проблема с кодом, в котором они живут, становясь не сфокусированным. Если сложность исходных данных возрастает, вам, вероятно, нужно следить за тем, нужно ли вам более выразительное решение (возможно, генератор синтаксических анализаторов, такой как ANTLR)
Они глубоко не интуитивны.
Это язык сопоставления с образцом. Я бы сказал, что они довольно интуитивны в этом контексте.
Как улучшить читаемость приведенного выше кода?
Не уверен, кроме использования регулярных выражений.
Есть ли лучший способ сделать это? Класс Util, который элегантно решает эту проблему.
Упомянуто выше, java.util.Scanner.
Где вы проводите грань между использованием regEx и написанием чего-то более простого по сравнению с тем, что я написал выше?
Лично я использую регулярные выражения для чего-то достаточно простого.
Как вы повышаете удобочитаемость / удобство обслуживания regExes?
Тщательно подумайте, прежде чем расширять, будьте особенно внимательны, чтобы подробно прокомментировать код и регулярное выражение, чтобы было понятно, что вы делаете.