Ceci est tiré de la zone d'exercices du tutoriel de Sun, donc je suppose que c'est un devoir.Java: afficher le nombre de fois qu'une lettre apparaît dans une chaîne
Je sais comment utiliser une boucle for pour itérafer la chaîne, mais je souhaite apprendre des tableaux pendant que je suis là-bas et les stocker ainsi. Voilà ce que je suis arrivé à ce jour:
BufferedReader in = new BufferedReader(new FileReader("xanadu.txt"));
int c;
char letters[] = new char[27]; //26 + newline?
while((c = in.read()) != -1){
letters[(char)c] += 1; //store in index, so letters['a'] = 4 etc..
}
Maintenant, pour une raison quelconque (œuvres dans d'autres langues), il n'a pas jeté int c
à char
correctement, et il entre dans letters[110]
ou quelque chose en ascii décimal à la place, bien sûr qui est hors limites de mon tableau.
De quelle façon devrais-je m'attaquer à ce problème afin que je puisse avoir un bon index de caractères?
Huh? Je veux dire que array [(char) 65] deviendra array ['A'], je n'ai pas votre commentaire. Pouvez-vous ne pas stocker les index de tableau sous forme de lettres dans Java? Est-ce toujours par défaut à ascii? – John
Eh bien, les tableaux en Java ne sont pas comme les tableaux associatifs, par exemple PHP. C'est peut-être une carte que vous recherchez. –
aioobe
@John: 'array [(char) 65]' et array ['A'] 'seront en fait la même chose - ils accèderont au tableau index 65. Un tableau est un mappage de longueur fixe d'entiers à des valeurs, commençant à 0. –