2013-05-03 3 views
0

Comment puis-je randomiser chaque chaîne dans les mots Array ... pour le mot "Position" à "Psioiont". essentiellement ce que je dois faire est que je veux afficher la i façon drôle où une personne doit penser avant de pouvoir répondre à ...Chaîne de brouillage

Bonjour ---> « hlelo »

public class Rnd { 
    public static void main(String[] args) { 

     List list = new ArrayList(); 
     Collections.shuffle(list); 

     String[] words =new String[]{"Position", "beast", "Hello"}; 
     Collections.shuffle(Arrays.asList(words)); 
    } 
} 
+2

duplicatef de http://stackoverflow.com/q/3316674/866172 – Jalayn

+0

Vous Actuellement, nous ne faisons que mélanger l'ordre des mots de la liste plutôt que l'ordre des caractères de la chaîne. – berry120

Répondre

0

Convertir la chaque chaîne à un tableau de caractères et appel shuffle sur cela, puis créer une chaîne à nouveau.

Bien sûr, cela ne fonctionne pas avec le vrai Unicode - il n'y a pas de moyen facile de le faire s'il y a des caractères non-BMP ou des caractères composites dedans. Mais cela fera probablement pour le genre de petit jeu cela semble être.

+0

Juste essayé ceci. curieusement, cela n'a pas fonctionné .. – christopher

0

Il suffit de mettre les personnages dans chaque chaîne dans une liste, puis appelez Collections.shuffle(), puis les mettre dans une chaîne:

String x = "hello"; 
    List<Character> list = new ArrayList<Character>(); 
    for(char c : x.toCharArray()) { 
     list.add(c); 
    } 
    Collections.shuffle(list); 
    StringBuilder builder = new StringBuilder(); 
    for(char c : list) { 
     builder.append(c); 
    } 
    String shuffled = builder.toString(); 

    System.out.println(shuffled); //e.g. llheo 
Questions connexes