2013-05-03 104 views
1

用戶(JAVA)進入了一個句子查找每個單詞的元音我有一個計劃,讓下面的輸出:

輸入了一句:我是新來的Java

上午

的Java

在元音:我是新來的Java = 6

我的問題是我需要得到元音由用戶輸入的句子的每個單詞。

例如,輸出應該是這樣的:

輸入了一句:我是新來的Java

I(1)

上午(1)

新的(1)

(1)

java(2)

數在元音:我是新來的Java = 6

我使用.split()來分隔句子輸入和開關/.charAT報表元音檢查。

有人可以幫我實現這個結果嗎?

+0

你給了最終的輸出應該是什麼樣子,但你還需要對細節你得到什麼,你是如何得到它。 – Guvante 2013-05-03 23:47:03

+0

我正在使用用戶輸入:掃描儀輸入=新的掃描儀(System.in); 字符串句子; System.out.print(「Enter a Sentence:」); 句子=輸入。nextLine(); SentenceSplit(sentence); //用於分割用戶輸入的方法 – user2348633 2013-05-04 00:08:28

+0

不要忘記* Y *例如「今天的天空很美。」標準元音是AEIOU和*有時* Y. – Raystorm 2013-05-04 00:54:13

回答

2

的整體解決方案只需要幾行代碼:

for (String word : sentence.split(" +")) 
    System.out.println(word + " (" + 
     word.replaceAll("[^aeiouAEIOU]", "") 
     .length() + ")"); 

它的工作方式是調用replaceAll()刪除所有非元音,所以剩下的就是隻有元音,那麼你乾脆把只有元音字符串的長度。

+0

我已經改變它使用相同的技術,但顯示你問。現在就試試。 – Bohemian 2013-05-04 00:40:35

1

我會建議建立一個字符串並遍歷每個字符並檢查元音。

String test = "I am new to Java"; 
int vowels = 0; 

for (char c: test.toLowerCase().toCharArray()){ 
    if(c == 'a' || c =='e' || c=='i' || c=='o' || c=='u'){ 
     vowels++; 
    } 
} 
System.out.println(test + " Contains: " +vowels +" Vowels"); 
0
String n = "I am in Madurai"; 
int count = 0; 
char c[] = new char[n.length()]; 
n.getChars(0, n.length, c, 0); 

for(int i = 0; i < c.length; i++) { 
    if (c[i] == 'a' || c[i] == 'e' || c[i] == 'i' || c[i] == 'o' || c[i] == 'u') 
     count++; 
} 
System.out.println("Number of vowels in a given sentence: " + count); 

輸出:

Number of vowels in a given sentence: 7