2011-12-24 5 views
0

(Это не домашнее задание) У нас есть несколько дополнительных упражнений, которые мы можем сделать, и я сделал некоторые из них. Но я застрял в этом ... Мне нужно сделать программу, которая дала строку «loool» prints «l: 1: o: 3: l: 1». Я пробовал кучу комбинаций, но я продолжаю получать ту же проблему: - Я не могу сделать последнее повторное письмо, чтобы получить печать (потому что с моим кодом следующий символ должен отличаться для печати).Java - Группировка повторяющихся символов в строке

 String str = "loool"; 

    StringBuilder sb = new StringBuilder(); 

    int count = 1; 
    char before; 
    before = str.charAt(0); 

    for (int i = 1;i < str.length();i++) { 
     if (str.charAt(i) == before) { 
      count++; 
     } 
     else { 
      sb.append(before + ":" + count); 
      before = str.charAt(i); 
      count = 1; 
     } 
    } 

    return sb.toString(); 
+0

так что другое условие останова - это конец строки, а не только другой следующий символ. –

ответ

0

Чтобы решить эту проблему, вам нужно добавить логику после завершения цикла. Эта логика, вероятно, будет очень похожа на некоторые из кода, который вы используете в блоке else.

+0

У него есть. Я хотел сделать все это внутри for(), который никогда не думал о добавлении материала после цикла. – Zentdayn

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