Java >> Desordenar aleatoriamente un String en Java

Para desordenar los caracteres que componen un String de manera aleatoria lo primero que debemos hacer es desmontar el String en una lista de String, donde cada posición de la lista se corresponda a un carácter del String:

List<String> chars = Arrays.asList(str.split(""));

Una vez convertido el String en un lista pasamos a desordenar dicha lista de manera aleatoria, para ello vamos a hacer uso del método shuffle de la clase Collections:

Collections.shuffle(chars);

Una vez tenemos la lista desordenada construimos un único String concatenando todos los String de la lista, para tal fin definimos un bucle for:

String salida = "";
for (String s : chars) {
    salida += s;
}

En cada iteración del bucle vamos concatenando a la cadena el valor leído.

La función completa quedaría de la siguiente manera:

private static String shuffle(String str) {

    List<String> letters = Arrays.asList(str.split(""));
    Collections.shuffle(letters);

    String salida = "";
    for (String s : letters)
        salida += s;

    return salida;

}

Espero que os sirva de ayuda.

Etiquetado , , ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: