Caracteres en un vector

Otra vez, tengo un problemita..... Tengo encargado hacer un programa, en el cual yo debo ingresar una frase (ejemplo "dame un melon"), esta frase la debo descomponer e ingresarla en un vector(array), ('d' 'a' 'm' 'e' 'u' 'n' 'm' 'e' 'l' 'o' 'n ')esa parte ya la hice;
luego debo sumar el numero de veces que se repite cada letra: e ingresarlo en un vector
d=1
a=1
m=2;
e=2;...
0=1
1=1
2=2...
Eso también ya esta hecho, ahora debo suma ese numero con el vector en el que lo ingrese; e ingresarlo en un nuevo vector:
1=1
2=2
3=4...
También esta listo, pero ahora me falta un ultimo paso, en el que debo de eliminar las letras que se repiten, para almacenarlo en un vector, ese paso no busco como hacerlo, ¿pueden ayudarme? Es decir, debe quedarme "dameunlon"... Necesito su ayuda!
mi codigo esta si hasta ahorita:
public class Encriptador{
char palabra [];
String frase;
int x,y;
int encriptar=0;
public Encriptador(){
Analizador a=new Analizador();
a.Analizador();
Palindroma p=new Palindroma();
frase="dameunmelon";//aki se ingresa la frase
palabra =new char[frase.length()];
}
public void ingresar(){
for ( int x=0; x<frase.length(); x++ ){
System.out.print(palabra[x]=frase.charAt( x ));
}
System.out.print("\n");
}
public void analizar(){
for (x=0; x<frase.length(); x++ ){
int cont=0; for (y=0; y<frase.length(); y++ ){
if(palabra[x]==palabra [y])
cont++;
}
System.out.print(palabra[x]+ " "+cont+"+"+x+"= ");
System.out.println(encriptar=cont + x);
}
//return (encriptar);
}
public void encriptar(){
for (x=0; x<frase.length(); x++ ){
int cont=0;
for (y=0; y<frase.length(); y++ ){
if(palabra[x]==palabra [y])
cont++;
}
System.out.print(encriptar=cont + x);
}
}
public static void main(String arg[]){
Encriptador e=new Encriptador();
e.ingresar();
e.analizar();
System.out.print("Encriptado= ");
e.encriptar();
System.out.print("\n");
}
}
Ayúdenme! Es urgente!

1 respuesta

Respuesta
1
Este método recibe un String y te devuelve una cadena de caracteres sin repetidos (las letras solo salen la primera vez como pediste)
Ejemplo: "dame un melon" -> [d,a,m,e, ,u,n,l,o] (Se repiten "m","e" y "n")
private char[] eliminaRepetidos (String frase){
char[] letras = frase.toCharArray();   // Forma facil de sacar char[] de un String
Collection actuales = new ArrayList(); // Una colección permite consultar si un objeto está dentro
StringBuffer resultado= new StringBuffer(); // Un stringbuffer es un string avanzado que permite crecer
for (int i=0;i<letras.length;i++){
char letra = letras;
if (actuales.contains(letra+"")) continue;  // Si la letra está en la colección es que se está repitiendo, así que no hacemos nada y pasamos a la siguiente letra
else {
Actuales. Add(letra+""); // Si no está en la colección es la primera vez que la vemos, la metemos en la colección y la añadimos al resultado
resultado. append(letra);
}
}
return resultado.toString().toCharArray(); // Podríamos devolver el propio stringbuffer, un string o un array de caracteres, a partir del propio stringbuffer
}
}
Mm... mmm... sigo con un poco de duda, pero tendré que checar el código bien, ahorita ando un poco apurado pero nada más lo checo y te respondo dsi me funciono... gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas