2016-02-18 42 views
-1

我需要检查,如果一个词以元音或辅音,这样的事情开始:检查,如果一个词以元音开头或辅音

let word = "ciao" 

if wordStartsWithVowel { 
    print("Word starts with Vowel!") 
} 

我怎么能这样做?

+2

http://stackoverflow.com/q/32769582/2303865 –

+0

根本不是一回事。 –

+1

是的不一样。这一个更容易。你只需要检查第一个字符 –

回答

0
let vowels: [Character] = ["a","e","i","o","u"] 
let word = "ciao" 

if vowels.contains(word.lowercased().characters.first!) { 
    print("Word starts with Vowel!") 
} 

.lowercaseString是重要的,因为,否则,大写元音字母将不会被识别为元音。

+0

“小时”从元音开始,但以“h”开头。 – HenryLok

1
extension Character { 
    var isVowel: Bool { return ["a","e","i","o","u","A","E","I","O","U"].contains(self) } 
    var isConsonant: Bool { return ["b","c","d","f","g","h","j","k","l","m","n","p","q","r","s","t","v","w","x","y","z", 
            "B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Y","Z"].contains(self) } 
} 
extension String { 
    var startsWithVowel: Bool { 
     return characters.first?.isVowel ?? false 
    } 
    var startsWithConsonant: Bool { 
     return characters.first?.isConsonant ?? false 
    } 
} 

let word = "ciao" 

print(word.startsWithVowel)  // false 
print(word.startsWithConsonant) // true 

或者如果你喜欢使用NSCharacterSet:

extension Character { 
    struct CharacterSet { 
     static let vowel = NSCharacterSet(charactersInString: "aeiouAEIOU") 
     static let consonant = NSCharacterSet(charactersInString: "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ") 
    } 
    var characterSetValue: NSCharacterSet { return NSCharacterSet(charactersInString: String(self)) } 
    var isVowel:  Bool { return CharacterSet.vowel.isSupersetOfSet(characterSetValue) } 
    var isConsonant: Bool { return CharacterSet.consonant.isSupersetOfSet(characterSetValue) } 
} 
"a".characters.first!.isConsonant  // false 
"a".characters.first!.isVowel   // true 
相关问题