2016-07-08 70 views
1

首先,請原諒我的英文不好。這不是我的母語(這是我的一個問題,你會在後面看到爲什麼)。如何計算包含重音符號的字符串中的元音?

我在Java中做了一個方法,並且建議計算一個字符串的元音。輸入來自Windows提示符,因爲我分別使用javac和java命令編譯和執行。

我寫了一些代碼行來解決這個練習,但是我不能計算有重音符號的元音。例如。當我嘗試「canción」時,它的輸出只計算2個元音。

public static int countVowels(String text){ 
    int answer = 0; 
    String test = "AEIOUaeiou"; 
    for (int i = 0; i < text.length(); i++) 
     for (int j = 0; j < test.length(); j++) 
      if (text.charAt(i) == test.charAt(j)) { 
       answer++; 
       break; 
      } 
    return answer; 
} 

public static void form() { 
    Scanner in = new Scanner(System.in); 
    System.out.println("This program counts the number of vowels."); 
    int answer = 0; 
    String text = ""; 
    while (!text.equals("-1")) { 
     System.out.print("Enter a line of text (-1 to exit): "); 
     text = in.nextLine(); 
     answer = Character.countVowels(text); 
     System.out.println("Number of vowels: " + answer); 
    } 
    System.out.println("Closing the program..."); 
} 

我使用掃描儀作爲輸入法。

我試着比較2字符串,因爲我認爲使用if(text.charAt(i) == 'A')只是無聊(也許我錯了)。

真的,我不知道該怎麼做。我試過使用Ascii值(193 =Á),我試着在測試字符串String test = "AEIOUaeiouÁÉÍÓÚáéíóú";中寫入帶重音符號的de元音。

沒有用。我會非常感謝可以幫助我的人。

PS,我不允許使用數組。

+0

可能的重複[什麼是檢查一個字符是否是Java中的元音的最佳方法?](http://stackoverflow.com/questions/26557604/whats-the-best-way-to-check-if- a-character-is-a-vowel-in-java) –

+0

因爲這個名字與java.lang.Character'衝突,所以我不會調用你的類'Character'。通常,不要使用'java.lang'包中存在的類名,因爲這會導致很多混淆,因爲它是在每個java源文件中自動導入的。 –

+0

謝謝你的建議,我會編輯。 –

回答

1

算「元音」最簡單的方法是這樣的一行代碼:

int vowelCount = str.replaceAll("[^AEIOUaeiouÁÉÍÓÚáéíóú]", "").length(); 

此找到使用正則表達式和刪除(替換空白)中的所有字符未列出的其中一個(通過負字符類)。

相關問題