如何编写一个程序来计算其中至少有2个元音的单词数?

时间:2015-03-04 17:05:29

标签: java string

我只能找到带有'x'个元音的单词。我需要找到包含至少2个元音的单词数量。

public static void main(String[] args) {
    int counter2 =0;
    String acc = JOptionPane.showInputDialog("Enter a string:");
    String[] words = acc.split(" ");
    for(String word : words){
    int counter =0;
     word = word.toLowerCase();
     for (int i =0; i < word.length(); i++){ 
         char x = word.charAt(i);
         if(x == 'a' || x == 'e' || x == 'i' ||
            x == 'o' || x == 'u'){
             counter++;
          }

     } 
     if (counter >= 2) {
        System.out.println(counter);    

3 个答案:

答案 0 :(得分:1)

你可以定义另一个计数器,它会计算单词数量,因为你只计算元音数。如下所示:

int numberOfWords = 0;
... for loop
if (counter >= 2) {
    numberOfWords++;    
}
// print numberOfWords

答案 1 :(得分:0)

当计数器变量的值大于2时,可以使用计数变量并递增计数变量。你会得到一些单词。

你也可能也想考虑资本元音。

答案 2 :(得分:0)

在您的代码中,您需要计算元音的数量,如果它的&gt; = 2,您将打印元音计数器值而不是打印字数。您可以在相同的if条件下跟踪字数

      public static void main(String[] args) {
            int counter2 =0;
            String acc = JOptionPane.showInputDialog("Enter a string:");
            String[] words = acc.split(" ");
            int wordsWithVowels = 0;
            for(String word : words){
              int counter =0;
              int sum=0;
              word = word.toLowerCase();
              for (int i =0; i < word.length(); i++){ 
                 char x = word.charAt(i);
                 if(x == 'a' || x == 'e' || x == 'i' ||
                    x == 'o' || x == 'u'){
                     counter++;
                  }

              } // end of inner for loop
             if (counter >= 2) {
                wordsWithVowels++;
             }  
          } // // end of outer for loop
      System.out.println("Number of words with 2 or more vowels "+wordsWithVowels);
     } // end of main