Java - Borrar caracteres de un array

 
Vista:
sin imagen de perfil

Borrar caracteres de un array

Publicado por MKD (36 intervenciones) el 02/11/2015 19:28:16
Hola a todos!!

Tengo un problema con el siguiente código ( aparte de que hay más mierda y más desorden que otra cosa.. T_T )

la idea es que tengo un array de palabras y transformo esas palabras es un array char... ( DEPOSITO )

De esas palabras selecciono dos.

Borro los caracteres del array DEPOSITO y deberían salir los caracteres solo de las palabras que no había seleccionado pero no se como hacerlo.. :(

os pongo lo que tengo echo. ( El programa debería mostrar en prueba los resultados no en el resto de programa.. T_T ya lo modificaré pero necesito solucionar el tema de borrar del array los caracteres )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package actualitzaciolletres;
 
public class ActualitzacioLletres {
 
  public static void main(String[] args) {
      ActualitzacioLletres programa = new ActualitzacioLletres();
        programa.inici();
    }
 
     void inici(){
        presentarAplicacio();
          String[] nombre = arrayLletres();
     //     Diposit (nombre);
           char[] diposit = Diposit(nombre);
          char[] definitives1 = ParaulesValides ( diposit, nombre);
           char [] resultat = EliminarParaules(diposit, nombre, definitives1);
              //  ParaulesValides(diposit, nombre );
          prova ( nombre, diposit, definitives1);
 
    }
      void presentarAplicacio(){
        System.out.println("Aquest programa esborrara lletres");
     System.out.println("_____________________________________________");
          }
 
  String[] arrayLletres(){
        String[] nombre ={ "ABADESSA","IDOL","PlORAR","INCLOURE","BATA" };
        return nombre;
          }
  char []Diposit (String[] nombre){
 
                char[] diposit = {'R', 'C', 'A', 'O', 'O', 'S', 'A', 'S', 'P', 'D',
                          'L', 'A', 'D', 'A', 'N', 'U', 'L', 'O', 'B', 'I',
                          'E', 'I', 'R', 'E', 'T', 'L', 'R', 'A', 'B', 'A'};
 
                for (int x=0;x<diposit.length;x++)
                 System.out.println(" Diposit" + x + " : " + diposit[x]);
 
        return diposit;
      }
  char[] ParaulesValides (char [] diposit, String[] nombre){
            String definitives = "IDOL, BATA";
            System.out.println("Les paraules que seleccionem son "+definitives);
            for (int x=0;x<definitives.length();x++)
           System.out.println(" Caracter " + x + " : " + definitives.charAt(x));
             char [] definitives1 = definitives.toCharArray();
      return definitives1;
  }
 
      char[] EliminarParaules (char[] diposit, String[] nombre, char[] definitives1){
 
             int elemA = 0;
        // recorremos los valores del array A
        for(int i=0;i<definitives1.length;i++){
                 // recorremos los valores del array B
                 for(int j=0;j<diposit.length;j++){
                // Cada valor del array A lo comparemos con todos los valores
                // del array B
                     if(definitives1[i] == diposit[j]);
                     diposit[j]=' ';
                    elemA++;
            }System.out.println("");
            System.out.println("El elemento "+definitives1[i]+" se presenta" );
 
 
           }
      return definitives1;
 
  }
 
   public void prova( String[] nombre, char[] diposit, char[] definitives1) {
     System.out.println("");
     System.out.println("totes les paraules");
     System.out.println("el diposit= ");
     for(int i=0; i<diposit.length; i++){
     System.out.println("el diposit= "+diposit[i]);}
 
     for(int i=0; i<nombre.length; i++){
     System.out.print(" "+nombre[i]);}
     System.out.println();
     System.out.println("Les paraules seleccionades per esborrar caracteres ");
     for(int i=0; i<definitives1.length; i++){
     System.out.print(+definitives1[i]);}
   }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 02/11/2015 20:39:43
Hola...

Por lo que entendí, tienes un arreglo con N cantidad de palabras, en otro arreglo tienes un nuevo arreglo con N cantidad de caracteres, y lo que buscas es borrar los caracteres que se encuentran en tu primer arreglo con los caracteres que se encuentren en tu segundo arreglo.¿ Es correcto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por mkd (36 intervenciones) el 02/11/2015 20:49:55
Es decir tengo el arreglo con X palabras. ( PalabrasIniciales )

Esas palabras las convierto en caracteres. ( PalabrasCaracteres )

Y entonces elijo dos palabras ( PalabrasEscogidas) de las palabras iniciales( PalabrasIniciales ). Y tengo que quitar del array PalabrasCaracteres todos los que sean de las PalabrasEscogidas.

Me explicado?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 02/11/2015 21:08:52
Hola...

Yo lo hice de la siguiente manera, no estoy seguro si te sirve pero por lo menos es funcional cuando eliges alguna palabra...

1
2
3
4
5
6
7
8
9
10
11
12
13
String[] nombres = {"Yuno","Hinata","Lenalee","Takao","Elizabeth","Asuna","Kuroyukihime","Teresa","Kallen",
		"Saeko","Aria"};
int eleccion = new Random().nextInt(nombres.length);
 
for(int i = 0; i < nombres.length; i++){
	if (eleccion != i){
		char[] caracteres = nombres[i].toCharArray();
		for(int j = 0; j < caracteres.length; j++){
			System.out.println(caracteres[j]);
		}
		System.out.println("-");
	}
}

Recordemos que prácticamente al seleccionar una palabra de un arreglo estamos haciendo referencia a la posición que ubica esa palabra en el arreglo; es decir, arreglo[0], por lo tanto lo que hago en el código es generar un numero aleatorio entre las posiciones posibles del arreglo para no elegir una posición que sobre paso a nuestro arreglo; es decir, que no se encuentre. Y ya cuando itero el arreglo de palabras originales lo que hago es omitir el indice seleccionado y listo.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por montse (36 intervenciones) el 02/11/2015 21:37:32
Hola!!

No me sirve! :(

Tiene que tachar las palabras de dentro del deposito.

Es decir tengo X palabras como { hinata , naruto, sasuke,,,, }

Y los caracteres:

{ a, b, c, d, d, d, a, b, ........ )

Si yo elijo la palabra Naruto tiene que tacharme de deposito de vocales todas las que sean de esa palabra... :(

Arriba está el código que quizás se ve más claro.. :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 02/11/2015 22:09:23
Con tachar te refieres a aparezca... Naruto... O que aparezca XXXXXX
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por mkd (36 intervenciones) el 02/11/2015 22:36:54
La palabra Naruto no es la que hay que tachar sino los caracteres.

Espera que vuelvo a explicarme! :

Tenemos estas palabras iniciales

1
2
3
4
String[] arrayLletres(){
    String[] nombre ={ "ABADESSA","IDOL","PlORAR","INCLOURE","BATA" };
    return nombre;
}

Y tenemos los caractres siguientes:
1
2
3
4
5
char []Diposit (String[] nombre){
 
    char[] diposit = {'R', 'C', 'A', 'O', 'O', 'S', 'A', 'S', 'P', 'D',
                          'L', 'A', 'D', 'A', 'N', 'U', 'L', 'O', 'B', 'I',
                          'E', 'I', 'R', 'E', 'T', 'L', 'R', 'A', 'B', 'A'};

Y escogemos 2 palabras de ArrayLletres ( por ejemplo Idol y plorar )

Entonces del char[] dipòsit sustituimos los caractres que salen en las palabras Idol y Plorar por guiones "-"

Eso es lo que no se hacer.. :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 03/11/2015 00:17:33
Hola...

Prácticamente lo que mencionas es lo que acabo de explicar en un foro, por lo que te proporciono la liga del tema para que puedas seguir lo que menciono, la única diferencia sería en como presentarías las palabras, en vez de agregar el carácter que es igual, lo que agregarías sería el signo "-".

http://www.lawebdelprogramador.com/foros/Java/1521157-String-a-char.html#i1521190

Sin más que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!

P.D. Si gustas puedes agregarme al Skype para que no dependas del tema, puedes agregarme con mi correo sin compromiso alguno (Encontraras mi correo al lado de mi nombre).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por MKD (36 intervenciones) el 03/11/2015 12:36:50
Vale tengo esta parte del programa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package actualizarlletres;
 
public class ActualizarLletres {
 
        public static void main(String[] args) {
      ActualizarLletres programa = new ActualizarLletres();
        programa.inici();
    }
 
         void inici(){
        presentarAplicacio();
        arrayLletres();
          String[] nombres = arrayLletres();
          char[]diposit  = Diposit();
        ActualizarLletres(nombres, diposit);
 
         }
         void presentarAplicacio(){
        System.out.println("Aquest programa esborrara lletres");
     System.out.println("_____________________________________________");
          }
 
         String[] arrayLletres(){
         String[] nombres ={ "ABADESSA","IDOL","PlORAR","INCLOURE","BATA" };
         return nombres;
          }
        char[] Diposit (){
        char[] diposit = {'R', 'C', 'A', 'O', 'O', 'S', 'A', 'S', 'P', 'D',
                          'L', 'A', 'D', 'A', 'N', 'U', 'L', 'O', 'B', 'I',
                          'E', 'I', 'R', 'E', 'T', 'L', 'R', 'A', 'B', 'A'};
        return diposit;
        }
 
           boolean   ActualizarLletres(String[] nombres, char[] diposit){
 
                String[] paraules ={ "ABADESSA","IDOL"};
               boolean result = false;
	for (int i = 0; i < paraules.length; i++){
		char[] caracteres = paraules[i].toCharArray();
		for(int j = 0; j < caracteres.length; j++){
			for(int k = 0; k < diposit.length; k++){
				if (diposit[k] == caracteres[j]){
					System.out.println("SI: " + diposit[k] + " - " + caracteres[j]);
					result = true;
				} else {
					System.out.println("NO: " + diposit[k] + " - " + caracteres[j]);
					result = false;
				}
			}
		}
		System.out.println("-----");
		System.out.println();
	}
	return result;
 
 
 
}
}



Ahora me falta que los caracteres que si que encuentra cuando yo cargue el deposito en vez del caràcter salga una Linea.
es decir en esto:

1
2
3
char[] diposit = {'R', 'C', 'A', 'O', 'O', 'S', 'A', 'S', 'P', 'D',
                          'L', 'A', 'D', 'A', 'N', 'U', 'L', 'O', 'B', 'I',
                          'E', 'I', 'R', 'E', 'T', 'L', 'R', 'A', 'B', 'A'};

en vez de así como he escogido Abadessa y Idol salga así:

1
2
3
char[] diposit = {'R', 'C', '-', '-', 'O', '-', '-', '-', 'P', '-',
                          '-', '-', '-', 'A', 'N', 'U', 'L', 'O', '-', 'I',
                          'E', '-', 'R', '-', 'T', 'L', 'R', 'A', 'B', 'A'};

como hago eso en mi código?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 03/11/2015 19:39:23
Hola...

Es sencillo... Crearas un nuevo arreglo con los caracteres ya comparados; es decir, cuando los caracteres sean iguales agregas el signo "-", caso contrario agregas la letra correspondiente. Finalmente, tendrás que recorrer el arreglo y listo ^^.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por montse (36 intervenciones) el 03/11/2015 19:50:00
Tendrías algún ejemplo?

sé que debería ser algo como if ( true )
replace()

Pero no consigo que me funcione en el código! :(

Dnde tengo que aplicarlo? :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Borrar caracteres de un array

Publicado por Lawliet (303 intervenciones) el 04/11/2015 19:37:04
Hola...

Lamento la tardanza, es solo que eh estado un poco ocupado, pero aquí te proporciono la forma en que yo lo hice...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char[] caracteres = {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'Ñ', 'Z', 'X', 'C', 'V', 'B', 'N', 'M'};
String[] palabras = {"ABADESSA","IDOL"};
 
System.out.println("ARREGLO ORIGINAL.");
System.out.println(Arrays.toString(caracteres));
 
for (int i = 0; i < palabras.length; i++) {
	for (int j = 0; j < caracteres.length; j++) {
		if (palabras[i].contains(String.valueOf(caracteres[j]))){
			caracteres[j] = '-';
		}
	}
}
 
System.out.println();
System.out.println("ARREGLO ACTUALIZADO.");
System.out.println(Arrays.toString(caracteres));

Como te mencionaba anteriormente, la lógica es la misma, recorremos nuestras palabras así como también nuestro arreglo de caracteres, y si nuestra palabra actual contiene el carácter entonces hacemos un remplazo en la posición de ese carácter por un guión.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Borrar caracteres de un array

Publicado por montse (36 intervenciones) el 04/11/2015 19:47:18
ostras!!

esto me faltaba!!

if (palabras[i].contains(String.valueOf(caracteres[j]))){

GRACIAS!!! <3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar