只是我想要做的一個簡單的代碼。如何查找給定字符串中的元音?
String vowels = "aeiou";
if (word.indexOf(vowels.toLowerCase()) == -1){
return word+"ay";
}
我試過使用這段代碼來檢查一個單詞是否沒有元音,如果是這樣就給它添加「ay」。到目前爲止沒有運氣。我認爲我的問題在indexOf方法的某處,任何人都可以向我解釋一下嗎?
只是我想要做的一個簡單的代碼。如何查找給定字符串中的元音?
String vowels = "aeiou";
if (word.indexOf(vowels.toLowerCase()) == -1){
return word+"ay";
}
我試過使用這段代碼來檢查一個單詞是否沒有元音,如果是這樣就給它添加「ay」。到目前爲止沒有運氣。我認爲我的問題在indexOf方法的某處,任何人都可以向我解釋一下嗎?
事情是這樣的:
public String ModifyWord(String word){
String[] vowels = {"a","e","i","o","u"};
for (String v : vowels) {
if(word.indexOf(v) > -1){ // >-1 means the vowel is exist
return word;
}
}
return word+"ay"; //this line is executed only if vowel is not found
}
對不起中間線做什麼?如果(word.indexOf(v)> -1){ – 2015-03-03 04:49:10
'if(word.indexOf(v)> -1)'檢查元音**是否存在**,一旦找到第一個元音(如果存在)不必再進行檢查 – DnR 2015-03-03 04:52:23
爲什麼要在外面添加+「ay」? – 2015-03-03 04:54:14
你可以使用正則表達式,並String.matches(String regex)
。首先是一個正則表達式。 [AEIOUaeiou]
是vowel character class和.*
(s)將消耗任何可選的非元音(s)。
String regex = ".*[AEIOUaeiou].*";
然後你就可以測試你的word
像
if (word.matches(regex)) {
注意您vowels
已經是小寫(沒有必要在這裏小寫word
,正則表達式包含大寫)。
我正在嘗試使用indexOf來完成此操作。 – 2015-03-03 04:33:50
你的代碼尋找單詞中的整個元音集合,而不是至少發生一個元音。這看起來像重複的http://stackoverflow.com/questions/13734630/use-string-methods-to-find-and-count-vowels-in-a-string – killogre 2015-03-03 04:37:01
再次,我知道如何解決這個通常。等於我需要使用indexOf – 2015-03-03 04:38:09