Программа выдает поток текстовых данных типа:
6502-030029
6300-030046
6100-04
6100-02
Задача: если последняя часть числа содержит 6 символов разделить их таким образом
6502-03-0029
6300-03-0046
Разделяете строку по -, проверяете вторую половину на 6 символов и убираете ненужные:
static String process(String text) {
String[] parts = text.split("-");
if (parts[1].length() == 6) {
return parts[0] + "-" + parts[1].substring(0, 2) + "-" + parts[1].substring(2);
}
return text;
}
public static void main(String[] args) throws Exception {
for (String text : Arrays.asList("6502-030029", "6300-030046", "6100-04", "6100-02")) {
System.out.println(process(text));
}
}
Еще можно через регулярные выражения (в этом случае описываем шаблон строки).
. -- любой символ. Для текущей задачи можно просто цифры искать через \d или [0-9], но ради краткости шаблона использую .- -- просто тире -() -- круглые скобки служат для захвата группы символов, которые после вытаскиваем через groupКод:
static String processRegExp(String text) {
Pattern p = Pattern.compile("(....-)(..)(....)");
Matcher m = p.matcher(text);
if (m.find()) {
return m.group(1) + m.group(2) + "-" + m.group(3);
}
return text;
}
Консоль:
6502-03-0029
6300-03-0046
6100-04
6100-02
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости