swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音詳解
前言
相信大家在iOS做搜索時(shí)一般會(huì)遇到通過(guò)拼音搜索關(guān)鍵字的情況,這時(shí)候我們的判斷就需要把中文漢字轉(zhuǎn)換為拼音,有些時(shí)候還需要獲取漢語(yǔ)拼音的首字母大寫(xiě)縮寫(xiě),那么我們應(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è)方法,是獲取大寫(xiě)的首字母的方法:
func getPinyinHead() -> String {
// 字符串轉(zhuǎn)換為首字母大寫(xiě)
let pinyin = self.transformToPinyin().capitalizedString
var headPinyinStr = ""
// 獲取所有大寫(xiě)字母
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ì)腳本之家的支持。
- Java漢字轉(zhuǎn)拼音類庫(kù)Pinyin4j詳細(xì)使用方法與實(shí)例
- ASP.NET Core使用微軟官方類庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音
- JavaScript實(shí)現(xiàn)漢字轉(zhuǎn)換為拼音的庫(kù)文件示例
- python實(shí)現(xiàn)將漢字轉(zhuǎn)換成漢語(yǔ)拼音的庫(kù)
- asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(kù)(附 LINQ 調(diào)用方法)
- python munch庫(kù)的使用解析
- 關(guān)于python3安裝pip及requests庫(kù)的導(dǎo)入問(wèn)題
- python使用Streamlit庫(kù)制作Web可視化頁(yè)面
- 教你學(xué)會(huì)通過(guò)python的matplotlib庫(kù)繪圖
- 教你使用Python pypinyin庫(kù)實(shí)現(xiàn)漢字轉(zhuǎn)拼音
相關(guān)文章
關(guān)于Swift 4.1中的Codable改進(jìn)詳解
這篇文章主要給大家介紹了關(guān)于Swift 4.1中的Codable改進(jìn)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02
IOS 實(shí)現(xiàn)簡(jiǎn)單的彈幕功能
本文主要介紹IOS 實(shí)現(xiàn)彈幕功能,這里給大家一個(gè)實(shí)例來(lái)展現(xiàn)彈幕功能,有需要的小伙伴可以參考下2016-07-07
Swift 3.0基礎(chǔ)學(xué)習(xí)之?dāng)U展
擴(kuò)展是向一個(gè)已有的類、結(jié)構(gòu)體或枚舉類型添加新的功能(在swift中擴(kuò)展沒(méi)有名字)。相當(dāng)于Objective-C中Category(OC中可以有名字的,而且只能擴(kuò)展類)。這篇文章主要介紹了Swift 3.0基礎(chǔ)學(xué)習(xí)之?dāng)U展的相關(guān)資料,需要的朋友可以參考下。2017-03-03
Swift4.1轉(zhuǎn)場(chǎng)動(dòng)畫(huà)實(shí)現(xiàn)側(cè)滑抽屜效果
這篇文章主要為大家詳細(xì)介紹了Swift4.1轉(zhuǎn)場(chǎng)動(dòng)畫(huà)實(shí)現(xiàn)側(cè)滑抽屜效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
swift實(shí)現(xiàn)顏色漸變以及轉(zhuǎn)換動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了swift實(shí)現(xiàn)顏色漸變以及轉(zhuǎn)換動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Ubuntu 16.04上安裝 Swift 3.0及問(wèn)題解答
本文給大家分享的是在Ubuntu系統(tǒng)中安裝 Swift 3.0的方法和步驟,以及安裝過(guò)程中有可能遇到的問(wèn)題的解答,這里推薦給小伙伴們,希望大家能夠喜歡2016-07-07

