2017-08-07 77 views
0

这是程序谁能帮助我 起初我给字符串第一部分工作正常发现的元音字符串,并将其打印删除重复的元音字母在一个字符串

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String a = "History can also refer to the academic discipline "; 
    int count = 0; 

    for (int i = 0; i < a.length(); i++) { 

     if (a.charAt(i) == 'a' || a.charAt(i) == 'e' || a.charAt(i) == 'i' || a.charAt(i) == 'u' 
       || a.charAt(i) == 'u') { 
      System.out.println("The sentence have vowels:" + a.charAt(i)); 
      count++;//counting the number of vowels 
     } 
     if (a.charAt(i+1) == 'a' || a.charAt(i+1) == 'e' || a.charAt(i+1) == 'i' || a.charAt(i+1) == 'u' 
       || a.charAt(i+1) == 'u') {i++;}//finding reoccurring vowels 
    } 
    System.out.println("number of vowels:" + count); 
} 

}

在第二部分我尝试跳过重现的元音,但它不工作

+2

*** a.charAt第(i + 1)***,这将爆炸n的for循环 –

+0

最后一次迭代你正在检查'你'2次和'0'零次 –

+0

我的坏我输入“u”而不是“o”,但仍然我无法消除反复出现的元音,所以我应该怎么做才能纠正它 –

回答

0

你需要做一些改动:

  • 运行循环,直到a.length() - 1因为你已经为i+1 ST字符循环
  • 内检查复位计数,如果第二if条件不满足。

如:

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    String a = "History can also refer to the academic discipline "; 
    int count = 0; 

    for (int i = 0; i < a.length() - 1; i++) { 

     if (a.charAt(i) == 'a' || a.charAt(i) == 'e' || a.charAt(i) == 'i' || a.charAt(i) == 'u' 
       || a.charAt(i) == 'u') { 
      System.out.println("The sentence have vowels:" + a.charAt(i)); 
      count++;//counting the number of vowels 
     } 
     //finding reoccurring vowels 
     if (a.charAt(i+1) == 'a' || a.charAt(i+1) == 'e' || a.charAt(i+1) == 'i' || a.charAt(i+1) == 'u' 
       || a.charAt(i+1) == 'u') { 
      i++; 
     } else{ 
      count = 0; 
     } 
    } 
    System.out.println("number of vowels:" + count); 
} 
+0

我试过,输出是这个,但我只想igno再重复元音 (这句话有元音:一 的句子有元音:一 的句子有元音:一 的句子有元音:一 的句子有元音:电子 号元音:0) –

+0

都不行如果最后一个字符是它自己的元音。 – jr593

+0

@MuthuAkilan你不想只计算连续的元音吗?您可以删除sysout以摆脱控制台中的这些语句。 –

0

这个怎么样

public static void main(String[] args) { 
    String a = "History can also refer to the academic discipline "; 
    int count = 0; 

    boolean lastWasVowel = false; 

    for (int i = 0; i < a.length(); i++) { 

     if (a.charAt(i) == 'a' || a.charAt(i) == 'e' || a.charAt(i) == 'i' || a.charAt(i) == 'o' 
       || a.charAt(i) == 'u') { 
      if(!lastWasVowel) { 
       count++; 
      } 
      lastWasVowel = true; 
     } else { 
      lastWasVowel = false; 
     } 
    } 
    System.out.println("number of vowels:" + count); 
} 
+0

这句话有元音:我 的句子有元音:一 的句子有元音:一 的句子有元音:○ 的句子有元音:电子 的句子有元音: Ë 这句话有元音:○ 的句子有元音:电子 的句子有元音:一 的句子有元音:一 的句子有元音:电子 的句子有元音:我 的句子有元音:我 该句有元音:i 该句有元音:i 该句有元音:e 元音数量:16 –

+0

它没有忽略重复的元音字 –