Générer un tableau de bytes
Bonjour, je débute en java et on me demande dans un exercice de générer un tableau de bytes (dans une fonction qui retourne le tableau), j'ai tappé ceci dans mon programme, mais ca plante à l'exécution, quelqu'un pourrait il m aider ?
Code:
1 2 3 4 5 6 7 8
|
public byte nextByte(){
Random generateur = new Random(System.currentTimeMillis());
byte tableau [] = new byte[1];
generateur.nextBytes(tableau);
System.out.println("byte : " + tableau[1]);
return tableau[1];
}//end nextByte |
tableau de bytes de nombres aléatoires de 32 à 127
Salut,
La méthode ci-dessous, qui n'est qu'un exemple parmi d'autres, permet de créer un tableau de bytes contenant aléatoirement les 96 valeurs possibles de 32 à 127 et ceci sans doublons:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
public byte[] nombreAlea()
{
int min = 32;
int max = 127;
int nbreVal = ((max - min) +1); // sera la taille du tableau
boolean encore = true;
byte[] tab = new byte[nbreVal]; // est initialisé a 0 par défaut taille = 96 >> 32 à 127
// Si on voulait des nombres de 0 à nnn (nnn = 1 à 127) valider les 2 lignes suivantes
//for (int i = 0; i <nbreVal; i++) // on l'initialise a -1 sinon le num. éventuel 0 serait un doublon
//tab[i] = -1;
int i1 = 0;
int i2 = 0;
while(encore)
{
for (i1 = 0; i1 <nbreVal; i1++)
{
encore = false; // sera forcé true si doublon
Random r = new Random();
int aI = min + r.nextInt(nbreVal); //trouvé
String aS = Integer.toString(aI);
byte aB = Byte.parseByte(aS);
for (i2 = 0; i2 <nbreVal; i2++)
{
if (aB == tab[i2])
{
encore = true;
System.out.println("Le nouveau nombre obtenu:\n" + aB
+ " est un doublon, on ne le prend pas.(i2 = " + i2 + ")\n");
i1--;
break;
}
}
if (encore == false)
tab[i1] = aB;
}
}
for (i1 = 0; i1 <nbreVal; i1++)
{
System.out.println("num. " + (i1 +1) + ": " + tab[i1]);
}
return tab;
} |
Utilisation depuis l'appli utillisateur:
Code:
1 2 3
|
LaClasseContenantLaMethode trf = new LaClasseContenantLaMethode();
byte[] tabAlea = trf.nombreAlea(); |
Cordialement,
Dan