Como puedo hacer introducir una palabra y que me la revuelva
Publicado por Ces (1 intervención) el 15/02/2020 21:43:58
Hola amigos... me podrían decir como puedo hacer para introducir una palabra y que revuelva las letras
Valora esta pregunta


0
import java.util.Scanner;
public class Revolver {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
System.out.print("Introduzca palabra: ");
String palabra = teclado.nextLine();
teclado.close();
//Creamos un array de caracteres de misma longitud que la palabra
Character[] revuelta = new Character[palabra.length()];
//Recorremos caracteres de la palabra y la colocamos en posiciones al azar del array
for (int i = 0; i < palabra.length(); i++) {
/*
* Generamos posiciones al azar e intentamos colocar
* caracter en el array. Solo se podrá colocar si el
* elemento del array está "disponible" (es null).
* Si no se puede colocar porque ya existe un caracter,
* repetimos el proceso con un nuevo numero al azar hasta
* conseguirlo
*/
boolean colocado = false;
while (!colocado) {
int posi = (int)(Math.random() * palabra.length());
if (revuelta[posi] == null) { //Se puede colocar
revuelta[posi] = palabra.charAt(i);
colocado = true; //Esto pondrá fin al bucle
}
}
}
//Finalizado el bucle foro, los caracteres ya debería haberse colocado revueltos
System.out.println("\nPalabra revuelta:");
for (Character c: revuelta)
System.out.print(c);
}
}
Introduzca palabra: dinosaurio
Palabra revuelta:
udosnroiai
List<String> letras = Arrays.asList(palabra.split(""));
Collections.shuffle(letras);
String revueltas = String.join("", letras);