2016-12-25 3 views
-4

母音を数えるコードを作成できますが、問題はコードを作成できません私は与えられた単語のだろうどのくらい知ることができないbeacuseこれまでのところ、私はこのコードを作成している、と私は毎回のword.charAt(インデックス)を与える必要があり、文字列の最後までの母音をカウントします 誰かが文字列の母音を数えるためにこのコードを改善するのに役立ちますか?

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    System.out.print("Give a word: "); 
    String word = scan.nextLine(); 
    int aCounter = 0; 
    int eCounter = 0; 
    int iCounter = 0; 
    int oCounter = 0; 
    int uCounter = 0; 
    int yCounter = 0; 
    for (int i=0; i <= word.length(); i++){ 
    switch(word.charAt(0)){ 
    case 'a': aCounter++; break; 
    case 'e': eCounter++; break; 
    case 'i': iCounter++; break; 
    case 'o': oCounter++; break; 
    case 'u': uCounter++; break; 
    case 'y': yCounter++; break; 
    default: 
     System.out.println("Letter not found"); 
    } 
    switch(word.charAt(1)){ 
     case 'a': aCounter++; break; 
     case 'e': eCounter++; break; 
     case 'i': iCounter++; break; 
     case 'o': oCounter++; break; 
     case 'u': uCounter++; break; 
     case 'y': yCounter++; break; 
     default: 
      System.out.println("Letter not found"); 
     } 

    } 


    if (aCounter > 0) System.out.println("In the given word " + word + " are " + aCounter + " a"); 
    if (eCounter > 0) System.out.println("In the given word " + word + " are " + eCounter + " e"); 
    if (iCounter > 0) System.out.println("In the given word " + word + " are " + iCounter + " i"); 
    if (oCounter > 0) System.out.println("In the given word " + word + " are " + oCounter + " o"); 
    if (uCounter > 0) System.out.println("In the given word " + word + " are " + uCounter + " u"); 
    if (yCounter > 0) System.out.println("In the given word " + word + " are " + yCounter + " y"); 










} 

}

+0

コードは現在どのように機能しませんか? – David

+0

コードはうまく動作しますが、ユーザーが「こんにちは」という単語を与え、コードが2つの最初の文字「彼」を数えるだけで、「e」が1つしかないと言うと、単語の終わりまでカウントすると、与えられた単語の終わりまですべての母音を数えるコードが必要です、ありがとうございます。 – Remmargrop

+2

これが改善されると思われる** working code **の場合は、[codereview.se]を参照してください。 – jonrsharpe

答えて

2

forループでword.charAt(i)を使用するだけです。

さらに、マップを使用して文字を数えることを検討してください。

関連する問題