0
如果我有一個字符串,例如蜘蛛,你如何創建一個新的字符串,從第一個元音開始,到第一個字符串的最後一個字符結束。在指定字符後返回子字符串
例如: - 蜘蛛會的重新考慮 - 大象是大象 - 校園將昂皮
謝謝你的幫助。
如果我有一個字符串,例如蜘蛛,你如何創建一個新的字符串,從第一個元音開始,到第一個字符串的最後一個字符結束。在指定字符後返回子字符串
例如: - 蜘蛛會的重新考慮 - 大象是大象 - 校園將昂皮
謝謝你的幫助。
簡單的解決方案與定製CharacterSet
爲String
擴展
extension String {
func substringFromFirstVowel() -> String
{
let vowelCharacterSet = CharacterSet(charactersIn: "aeiouAEIOU")
guard let range = self.rangeOfCharacter(from: vowelCharacterSet) else { return self }
return self.substring(from: range.lowerBound)
}
}
"elephant".substringFromFirstVowel() // elephant
"spider".substringFromFirstVowel() // ider
"campus".substringFromFirstVowel() // ampus
試試這個小功能
func firstVowel(input : String) -> String {
var firstVowel = true
let vowels = "aAeEiIoOuU".characters
var result = ""
for char in input.characters {
if(!firstVowel) {
result.append(char)
}
if(vowels.contains(char) && firstVowel) {
firstVowel = false
result.append(char)
}
}
return result
}
print(firstVowels(input: "elephant")) //prints elephant
print(firstVowels(input: "Spider")) //prints ider
咦,比我快使用完全相同的解決方案,甚至函數名是一樣的。唯一的區別是我使用了'選項:.caseInsensitive'。 – Sulthan
@Sulthan,感謝提示,但'.caseInsensitive'似乎沒有考慮字符集。 – vadian
@vadiant有趣的。另一個'String' API的怪癖......我可能會使用'[aeiou]'正則表達式:) – Sulthan