swift如何利用系統(tǒng)庫將漢字轉(zhuǎn)換為拼音詳解
前言
相信大家在iOS做搜索時一般會遇到通過拼音搜索關(guān)鍵字的情況,這時候我們的判斷就需要把中文漢字轉(zhuǎn)換為拼音,有些時候還需要獲取漢語拼音的首字母大寫縮寫,那么我們應(yīng)該這么做呢?
有些第三方庫可以完成漢字到拼音的轉(zhuǎn)換,但是系統(tǒng)庫也可以支持拼音轉(zhuǎn)換的所以這里就簡單介紹一下使用系統(tǒng)庫進(jìn)行轉(zhuǎn)換的方法。
方法如下:
增加判斷的函數(shù),最好的辦法是對String類添加一個extension,代碼如下:
extension String {}
然后第一步,是判斷字符串中有沒有中文字符:
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)換出來的拼音字符串,每個漢字的拼音中間都會用空格隔開,增加去掉空格的函數(shù):
func transformToPinyinWithoutBlank() -> String {
var pinyin = self.transformToPinyin()
// 去掉空格
pinyin = pinyin.stringByReplacingOccurrencesOfString(" ", withString: "")
return pinyin
}
最后一個方法,是獲取大寫的首字母的方法:
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é)
以上就是這篇文章的全部內(nèi)容了,本文還有許多不足,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細(xì)使用方法與實例
- ASP.NET Core使用微軟官方類庫實現(xiàn)漢字轉(zhuǎn)拼音
- JavaScript實現(xiàn)漢字轉(zhuǎn)換為拼音的庫文件示例
- python實現(xiàn)將漢字轉(zhuǎn)換成漢語拼音的庫
- asp.net 根據(jù)漢字的拼音首字母搜索數(shù)據(jù)庫(附 LINQ 調(diào)用方法)
- python munch庫的使用解析
- 關(guān)于python3安裝pip及requests庫的導(dǎo)入問題
- python使用Streamlit庫制作Web可視化頁面
- 教你學(xué)會通過python的matplotlib庫繪圖
- 教你使用Python pypinyin庫實現(xiàn)漢字轉(zhuǎn)拼音
相關(guān)文章
Swift中內(nèi)置的集合類型學(xué)習(xí)筆記
Swift中自帶數(shù)組、set、字典三大集合類型,這里將學(xué)習(xí)過程中的基礎(chǔ)的Swift中內(nèi)置的集合類型學(xué)習(xí)筆記進(jìn)行整理,需要的朋友可以參考下2016-06-06
詳解Swift中的Characters字符類型與String字符串類型
Swift中的字符串操作相當(dāng)便捷,下面我們來詳解Swift中的Characters字符類型與String字符串類型,需要的朋友可以參考下2016-06-06
Swift免費短信驗證碼實現(xiàn)及動態(tài)倒計時功能
這篇文章主要介紹了Swift免費短信驗證碼實現(xiàn)及動態(tài)倒計時功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
深入探究Swift枚舉關(guān)聯(lián)值的內(nèi)存
這篇文章主要給大家介紹了關(guān)于Swift枚舉關(guān)聯(lián)值的內(nèi)存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Swift之UITabBarController 導(dǎo)航控制器的自定義
本文給大家介紹swift導(dǎo)航控制器之UITabBarController,本文通過代碼實例給大家講解swift導(dǎo)航控制器,導(dǎo)航控制器類繼承UITabBarController,代碼簡單易懂,需要的朋友可以參考下2015-10-10
Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解
這篇文章主要給大家介紹了關(guān)于Swift中defer關(guān)鍵字推遲執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03
LeetCode?題解?Swift?有效的完全平方數(shù)
這篇文章主要為大家介紹了LeetCode?題解?Swift?有效的完全平方數(shù)方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

