/ / Замяна на сложна последователност от символи в Java - java

Заместване на комплексна последователност от символи в Java -

Моето изискване е да чета от файл и да замени последователността от две точки с точка и запетая (;;) във файла с 0.

Проблемът тук е, че когато има повече от две последователни събития като например ";;;;;;".

Аз не съм в състояние да замени 0 правилно, някакви предложения за постигането му в Java.

Примерна информация ще бъде 5; 4 ;;; 4; 4 ;;;; 4 ;;; 3 ;; 1; 5; 4; 5; 3; 5 ;; 5 ;; 5; 3 ;;;;;; ;;;;;; 5;

Резултатът ще бъде 5 4 0 0 4 4 0 0 0 4 0 0 3 0 1 5 4 5 0 3 5 0 5 0 5 3 0 0 0 0 0 0 0 0 0 0 0 5

Отговори:

1 за отговор № 1

Мисля, че това искаш

import java.util.regex.Pattern;
import java.util.regex.Matcher;

class Untitled {
public static void main(String[] args) {
String replaced = replaceSemiColons("5;4;;;4;4;;;;4;;;3;;1;5;4;5;;3;5;;5;;5;3;;;;;;;;;;;;5;");
replaced = replaced.replace(";", "");
System.out.println(replaced);
}

public static String replaceSemiColons(String string) {
StringBuffer replaced = new StringBuffer(string);
Pattern pattern = Pattern.compile(";;+");
Matcher matcher = pattern.matcher(replaced.toString());
while(matcher.find()){
replaced.replace(matcher.start(), matcher.end(), new String(new char[matcher.end() - matcher.start() - 1]).replace("", "0"));
matcher = pattern.matcher(replaced.toString());
}
return replaced.toString();
}
}

Ако някой има по-добър отговор, трябва да го вземете.