2015-08-02 3 views
1

вход будет похож,Удаление последовательности символов из строки JAVA

Hiii, я люблю Java тааак много

и ожидаемый результат будет как

привет, я очень люблю java

Для моего туманного кодирования заключается в следующем,

List<String> wordList = Arrays.asList(word.split("")); 
String previousCharacter; 
boolean inneFlag = false; 
boolean flag = false; 
int iterator = 0; 
int characterIterator = 0; 
String finalizedWord = ""; 
previousCharacter = wordList.get(0); 
for(String character : wordList){ 
    if((wordList.size()-1)==characterIterator){ 
      inneFlag = true; 
    } 
    if(flag){ 
     if(character.equalsIgnoreCase(previousCharacter)){ 
       iterator++; 
       if(inneFlag){ 
        if(iterator>2){ 
         finalizedWord = finalizedWord.substring(0,(finalizedWord.length()-iterator)); 
        } 
       } 
     }else{ 
       previousCharacter = character; 
       if(iterator>=2){ 
        finalizedWord = finalizedWord.substring(0,(finalizedWord.length()-iterator)); 
       } 
       iterator = 0; 
      } 
     }else{ 
      flag = true; 
     } 
    characterIterator++; 
    finalizedWord += character; 
} 

Может кто-нибудь дать лучшее решение ??

ответ

5

Простое регулярное выражение выполнит эту работу.

string.replaceAll("([A-Za-z])\\1+", "$1"); 

или

string.replaceAll("(.)\\1+", "$1"); 

DEMO

+0

поблагодарить у! Мне лучше узнать, как использовать шаблон регулярного выражения !! ;) – snAtchnAren

Смежные вопросы