Ce programme, je fais un cours COSC ne compilait droit, je continue à obtenir l'erreur:L'index de chaîne hors limites? (Java, boucle de sous-chaîne)
Exception dans le thread « principal » java.lang.StringIndexOutOfBoundsException: index de chaîne de gamme: 2
à java.lang.String.substring (String.java:1765) à VowelCount.main (VowelCount.java:13)
Voici mon code:
import java.util.Scanner;
public class VowelCount {
public static void main(String[] args) {
int a = 0, e = 0, i = 0, o = 0, u = 0, count = 0;
String input, letter;
Scanner scan = new Scanner (System.in);
System.out.println ("Please enter a string: ");
input = scan.nextLine();
while (count <= input.length()) {
letter = input.substring(count, (count + 1));
if (letter == "a") {
a++; }
if (letter == "e") {
e++; }
if (letter == "i") {
i++; }
if (letter == "o") {
o++; }
if (letter == "u") {
u++; }
count++;
}
System.out.println ("There are " + a + " a's.");
System.out.println ("There are " + e + " e's.");
System.out.println ("There are " + i + " i's.");
System.out.println ("There are " + o + " o's.");
System.out.println ("There are " + u + " u's.");
}
}
Pour mon savoir bord cela devrait fonctionner, mais pourquoi pas? Toute aide est la bienvenue. Je vous remercie!
D'accord, il compile! Mais ne produit toujours pas les bonnes quantités. La chaîne de test "aeiou" donne 0, 0, 0, 0, 0 .. – Brad
changer pour 'substr (count, 1)' – mauris
Ne pas utiliser == pour comparer les chaînes comme mentionné dans les autres réponses –