Я пытаюсь подсчитать, сколько раз буква появляется в строке (aabcccccaaa
), и помещаю количество раз, которое она выполняет, в новую строку вместе с соответствующей буквой.Проблема в том, что я получаю StringIndexOutOfBoundsException
.
У меня вроде есть подсказка, почему, но я думаю, что это в основном потому, что моя логика ошибочна в этой проблеме.
Я на правильном пути?Что я делаю не так и как я могу это исправить?
Например, вывод должен быть a2b1c5a3
Вот мой код:
public class Problem {
public static void main(String []args) {
String str = "aabcccccaaa";
System.out.println(compressBad(str));
}
public static String compressBad(String str) {
int countConsecutive = 0;
String compressedString = "";
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) != str.charAt(i + 1)) {
countConsecutive++;
compressedString += "" + str.charAt(i) + countConsecutive;
countConsecutive = 0;
}
}
return compressedString;
}
}