Elaborei um código para comprimir uma String mas existe uma falha que não consigo resolver
exemplo:
entrada:fffeeer
Saida:3f3e1f
Mas se a entrada for: fffeeere
O erro acontece na saida que deveria ser: 3f4e1r mas é 3f3e1f1e
Segue o código… agradecimentos antecipados pela atenção:
import javax.swing.*;
public class MetodoRle{
public static void main(String args[]){
// String ent = "AAAAABBBCC";
String ent = JOptionPane.showInputDialog("Digite a String a ser compactada:");
ent = compactarEntrada(ent);
JOptionPane.showMessageDialog(null,ent);
}
public static String compactarEntrada(String entrada){
int tamanho=1;
String resp="";
char anterior = entrada.charAt(0);
int i=1;
while (i<entrada.length())
{
if (entrada.charAt(i) == anterior)
tamanho++;
else
{
resp+= tamanho;
resp+=anterior;
anterior = entrada.charAt(i);
tamanho = 1;
}
i++;
}
resp+=tamanho;
resp+=anterior;
return resp;
}
}