J'ai tout à fait du mal à comprendre cela, j'ai essayé différentes méthodes et solutions, mais je pense que j'ai trop peur de toucher le code pour la quantité d'erreurs que je parviens à obtenir à chaque fois ! Le problème est que j'essaie simplement de lire à partir d'un tableau char qui a actuellement 1000 nombres générés de manière aléatoire dans chaque élément. J'ai besoin de montrer des statistiques sur ces valeurs String/chars qui vont de 1-6 et les stocker dans un tableau de statistiques, puis l'imprimer .. Où est-ce que je fais mal?Java ArrayindexOutofBoundsException de char à int
Heres un extrait de mon code:
public static int[] showGame(String tempResult) throws IOException{
int statistics [] = new int [6];
char [] resultat = new char[1000];
String tempStr;
try{
BufferedReader indata = new BufferedReader(new FileReader("DiceGame.txt"));
tempStr = indata.toString();
char result [] = tempStr.toCharArray();
for (int i = 0; i < 1000; i++) {
resultat[i] = tempStr.charAt(i);
switch (result[i]) {
case '1':
statistics[0]++;
break;
case '2':
statistics[1]++;
break;
case '3':
statistics[2]++;
break;
case '4':
statistics[3]++;
break;
case '5':
statistics[4]++;
break;
case '6':
statistics[5]++ ;
break;
}
}
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "An error occured: " + ex);
}catch (NumberFormatException e){
JOptionPane.showMessageDialog(null,"Error: " + e);
}
//Arrays.toString(statistics);
return statistics;
}
EDIT: Ou pourrait-il être parce que je ne suis pas l'appeler correctement de la principale ?!
public static void main(String[] args) throws IOException {
int []Statistik = new int[6];
String tossValue = JOptionPane.showInputDialog("set value for amount f toss");
DiceWithArray.Game(tossValue); //Kasta in värdet in i klass metoden
String tempToss = DiceWithArray.Game(tossValue);
Statistik = DiceWithArray.showGame(tempToss);
System.out.println("Resultatet : " + Arrays.toString(Statistik));
Vous devez utiliser 'BufferedReader' pour lire le fichier via' read' ou 'readLine' et en faire un tableau char. – Zircon
Que dit votre débogueur d'indata? Est-ce ce que vous attendiez? la longueur s'aligne-t-elle avec ce que vous voulez? Ce ne sera probablement pas à l'un de ceux-ci. Aussi. en général il est mauvais de coder en dur que 1000 si vous avez l'intention de lire l'ensemble du fichier .length – CodeMonkey