FIXES:Comment réparer une erreur d'index hors limites?
J'ai enlevé ma boucle while et ajouté
if (num.contains(count) == true) {
freq = Collections.frequency(num, count);
for (int k = 0; k < freq; k++) {
sb.append(temp);
}
}
J'essaie d'ajouter un des exemplaires supplémentaires de lettres au hasard (bien entre 0-8) à un mot. Exemple ... peut se transformer en dddooees ou en doeess.
Ma fonction fonctionne parfois, mais se bloque toujours avec une erreur d'index Out of Bounds.
Je suppose que j'ai besoin de vérifier une valeur NULL ma ArrayList à un moment donné. J'ai essayé d'emballer ma déclaration while avec et si vérifier, mais aucune amélioration n'a été faite. Aucune suggestion?
private static String addLetters(String word) {
StringBuilder sb = new StringBuilder(word.length());
String[] apart = word.split("");
int rand = (int)(Math.random() * 8);
int ran, goUp;
int count = 0;
List<Integer> num = new ArrayList<>();
for (int i = 0; i < rand; i++) {
ran = (int)(Math.random() * word.length());
num.add(ran);
}
Collections.sort(num);
for (int temp : num) {
System.out.println(temp);
}
for (String temp: apart) {
goUp = count;
sb.append(temp);
System.out.printf("String so far: %s\n", sb.toString());
System.out.printf("OUTSIDE: count: %d, goUp: %d\n", count, goUp);
/*
Removed the while loop and added in the above code using collections, works as intended now.
*/
while (count == num.get(goUp)) {
System.out.printf("INSIDE: count: %d, goUp: %d\n", count, num.get(goUp));
sb.append(temp);
System.out.printf("String ADD extra: %s\n", sb.toString());
goUp++;
}
count++;
}
return sb.toString();
}
Oui je vois, l'a réparé. – Yawn