前言
相信大家在iOS做搜索時(shí)一般會(huì)遇到通過(guò)拼音搜索關(guān)鍵字的情況,這時(shí)候我們的判斷就需要把中文漢字轉(zhuǎn)換為拼音,有些時(shí)候還需要獲取漢語(yǔ)拼音的首字母大寫縮寫,那么我們應(yīng)該這么做呢?
有些第三方庫(kù)可以完成漢字到拼音的轉(zhuǎn)換,但是系統(tǒng)庫(kù)也可以支持拼音轉(zhuǎn)換的所以這里就簡(jiǎn)單介紹一下使用系統(tǒng)庫(kù)進(jìn)行轉(zhuǎn)換的方法。
方法如下:
增加判斷的函數(shù),最好的辦法是對(duì)String類添加一個(gè)extension,代碼如下:
extension String {}然后第一步,是判斷字符串中有沒(méi)有中文字符:
extension String { func isIncludeChinese() -> Bool { for ch in self.unicodeScalars { // 中文字符范圍:0x4e00 ~ 0x9fff if (0x4e00 < ch.value && ch.value < 0x9fff) { return true } } return false }}第二步,是轉(zhuǎn)換為拼音:
func transformToPinyin() -> String { let stringRef = NSMutableString(string: self) as CFMutableString // 轉(zhuǎn)換為帶音標(biāo)的拼音 CFStringTransform(stringRef,nil, kCFStringTransformToLatin, false); // 去掉音標(biāo) CFStringTransform(stringRef, nil, kCFStringTransformStripCombiningMarks, false); let pinyin = stringRef as String; return pinyin}這樣轉(zhuǎn)換出來(lái)的拼音字符串,每個(gè)漢字的拼音中間都會(huì)用空格隔開(kāi),增加去掉空格的函數(shù):
func transformToPinyinWithoutBlank() -> String { var pinyin = self.transformToPinyin() // 去掉空格 pinyin = pinyin.stringByReplacingOccurrencesOfString(" ", withString: "") return pinyin}最后一個(gè)方法,是獲取大寫的首字母的方法:
func getPinyinHead() -> String { // 字符串轉(zhuǎn)換為首字母大寫 let pinyin = self.transformToPinyin().capitalizedString var headPinyinStr = "" // 獲取所有大寫字母 for ch in pinyin.characters { if ch <= "Z" && ch >= "A" { headPinyinStr.append(ch) } } return headPinyinStr}希望這些方法能夠?qū)Υ蠹矣杏谩?/p>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,本文還有許多不足,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選