Вы можете использовать метод replaceall
как:
str = str.replaceAll("\\.+","_");
См. Его на Ideone
Объяснение регулярного выражения \\.+
.
- это метасимвол регулярного выражения для сопоставления с чем угодно (кроме новой строки).Поскольку мы хотим сопоставить литерал .
, мы избегаем его с \
.Поскольку и Java Strings, и regex engine используют \
в качестве escape-символа, нам нужно использовать \\
, +
- это квантификатор для одного или нескольких.
В качестве альтернативы мы можем использовать:
str = str.replaceAll("[.]+","_");
Поскольку .
внутри класса символов обрабатывается буквально, нет необходимости избегать его.