Java - Comparar Arreglos

   
Vista:

Comparar Arreglos

Publicado por Jorge (5 intervenciones) el 02/02/2014 20:55:58
Buenas,

Hace tiempo que sigo el foro pero nunca me atreví a publicar algo ya que mis dudas siempre las aclaraba gracias al buscador y aportaciones de los usuarios.

Pero hace poco que estoy realizando un tipo 'juego' que concite en dar al usuario una serie de letras aleatorias (siempre mayor a 10, o sea por poner un ejemplo: 10 letras aleatorias 'AHYWYIETUQ' donde el jugador ha de formar una palabra de como mínimo 3 letras con las letras dadas (en este caso podría introducir HAY), se elimina esas 3 letras y le quedaría WYIETUQ para formar otra palabra.

Mi problema es que no consigo comparar los arreglos de manera que solo tome aquellas letras que el jugador ha introducido y las elimine. He conseguido comparar pero lo que me hace es comparar todas las letras, con la palabra que ha introducido el usuario y me da que no son iguales.



// Codigo par ambos arreglos situado en una clase

public void Iniciar () {
char letras [] = new char [texto];

//Generar letras aleatorias.
Random r= new Random();
for (int i= 0 ; i<texto; i++) {

char c = (char) (r.nextInt(26) + 'A');

letras[i] = c;
}

// Dar letras aleatorias
for (int i= 0 ; i<texto; i++){
System.out.print(letras[i]);
}

// Pedir palabra minimo 3 letras
char palabra3 [] = new char [20];
for (int x= 0 ; x<1; x++) {
System.out.println ('\n' + "Introduzca "
+ " una palabra de almenos 3 letras");
char pal = (char)System.in.read ();
palabra3[x] = pal;
}
}


Gracias de antemano

Un cordial saludo de un aprendiz ;)
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 Jhonnathan Emilio Cardona Saineda

Comparar Arreglos

Publicado por Jhonnathan Emilio Cardona Saineda (328 intervenciones) el 04/02/2014 16:57:06
Hola, espero te ayude
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
String textoDelUsuario="AHY";
		String letrasAleatorias="AHYWYIETUQ";
		char letras[]=letrasAleatorias.toCharArray();
		char letrasUser[]= textoDelUsuario.toCharArray();
		List<Character> list= new ArrayList<Character>();
		//Se pasa a una lista porque es mas facil trabajar cuando se eliminan elementos
		for(char a:letras){
			list.add(a);
		}
 
		for (int i = 0; i < letrasUser.length; i++) {
			for (int j = 0; j < list.size(); j++) {
				if(letrasUser[i]==list.get(j)){
					list.remove(j);
				}
			}
		}
		System.out.println(list.toString());
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

Comparar Arreglos

Publicado por Jorge (5 intervenciones) el 04/02/2014 21:15:23
Fantástico, me sirvió como base para comparar la salida con la entrada y eliminar letras utilizadas.

Muchas gracias de verdad.

pd: Perdón por la falta de ortografía tan bestia al poner 'AHY' en vez de 'AHI'
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