Я пытаюсь отобразить количество раз, когда буква появляется в строке и выводит ее в новой строке (compressedString
).
Например: aabcccccaaa
должно отображать a2b1c5a3
.
Пока что у меня есть a2
для отображения только потому, что я включил оператор break
.Если бы я убрал это, то получил бы StringIndexOutOfBoundsException
.
Мой вопрос: как бы я продолжил проходить всю строку, чтобы получить оставшуюся часть вышеупомянутого вывода без получения StringIndexOutOfBoundsException
?
Я запустил его через отладчик, но мне все еще не ясно.
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++) {
countConsecutive++;
if(str.charAt(i) != str.charAt(i + 1)) {
compressedString += "" + str.charAt(i) + countConsecutive;
break;
}
}
return compressedString;
}
}