package javaapplication94;
public class embaralha {
String[] palavras = {"java"};
public void Embaralha() {
String palavraEscolhida = palavras[(int) (Math.random() * palavras.length)];
int tamanhoDaPalavra = palavraEscolhida.length();
char[] palavra = new char[tamanhoDaPalavra];
int[] numero = new int[tamanhoDaPalavra];
int c1 = 0;
int c = 0;
boolean verifica = true;
do {
for (int b = 0; b < tamanhoDaPalavra; b++) {
c = 0;
int numerosAleatorios = (int) (Math.random() * tamanhoDaPalavra + 1);
for (int d = 0; d < tamanhoDaPalavra; d++) {
if (numerosAleatorios == numero[d] || numerosAleatorios == 0) {
c = 1;
break;
}
}
if (c != 1) {
numero[b] = numerosAleatorios;
c1++;
System.out.println(numero[b]);
if (c1 == tamanhoDaPalavra) {
verifica = false;
break;
}
}
}
} while (verifica == true);
}
}
Nesse código é escolhido um numero aleatório < que o tamanho do inteiro que guarda o tamanho da variável string escolhida(no caso só tem uma que é “java”) e o resto faz com que o numero aleatório não se repita,executo muitos vezes e funciona normal mais sempre no meio de muitas o numero se repete,alguém mais experiente em logica pode me dizer o que acontece?