РЕДАКТИРОВАТЬ: Проблема решена, прочитайте комментарии:)
В этой задаче я подсчитываю частоту буквы и добавляю их только с буквой и числом вхождений буквы в новую строку.
Я превратил код в массив символов, чтобы я мог манипулировать массивом и сравнивать значения. Он работает хорошо , пока не достигнет последних одинаковых элементов в конце массива. Проблема возникает в последних элементах сравнения .
Я написал такие коды, как:
if(i == letter.length-1) {
... print ...
}
Это не решает проблему. Вот код:
public static void main(String[] args) {
String letters = "aaabbcddeffgaaaa";
String newStr = "";
char[] letter = letters.toCharArray();
int count = 1;
for(int i=0; i<letter.length-1; i++) {
if(letter[i] == letter[i+1]) {
count++;
}
else if(letter[i] != letter[i+1]) {
if(count > 1) {
newStr += letter[i] + Integer.toString(count);
}
else {
newStr += letter[i];
}
count = 1;
}
else {
if(count > 1) {
newStr += letter[i] + Integer.toString(count);
}
else {
newStr += letter[i];
}
}
}
System.out.println(newStr);
}
Ожидаемый выход : a3b2cd2ef2ga4
Но вывод, который он дает: a3b2cd2ef2g
Он полностью отсутствуетa4, хотя цикл повторяет их!