国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

swift如何利用系統庫將漢字轉換為拼音詳解

2020-03-09 17:43:58
字體:
來源:轉載
供稿:網友

前言

相信大家在iOS做搜索時一般會遇到通過拼音搜索關鍵字的情況,這時候我們的判斷就需要把中文漢字轉換為拼音,有些時候還需要獲取漢語拼音的首字母大寫縮寫,那么我們應該這么做呢?

有些第三方庫可以完成漢字到拼音的轉換,但是系統庫也可以支持拼音轉換的所以這里就簡單介紹一下使用系統庫進行轉換的方法。

方法如下:

增加判斷的函數,最好的辦法是對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 }}

第二步,是轉換為拼音:

func transformToPinyin() -> String { let stringRef = NSMutableString(string: self) as CFMutableString // 轉換為帶音標的拼音 CFStringTransform(stringRef,nil, kCFStringTransformToLatin, false); // 去掉音標 CFStringTransform(stringRef, nil, kCFStringTransformStripCombiningMarks, false); let pinyin = stringRef as String; return pinyin}

這樣轉換出來的拼音字符串,每個漢字的拼音中間都會用空格隔開,增加去掉空格的函數:

func transformToPinyinWithoutBlank() -> String { var pinyin = self.transformToPinyin() // 去掉空格 pinyin = pinyin.stringByReplacingOccurrencesOfString(" ", withString: "") return pinyin}

最后一個方法,是獲取大寫的首字母的方法:

func getPinyinHead() -> String { // 字符串轉換為首字母大寫 let pinyin = self.transformToPinyin().capitalizedString var headPinyinStr = "" // 獲取所有大寫字母 for ch in pinyin.characters {  if ch <= "Z" && ch >= "A" {   headPinyinStr.append(ch)  } } return headPinyinStr}

希望這些方法能夠對大家有用。

總結

以上就是這篇文章的全部內容了,本文還有許多不足,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

 

注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤翔县| 华安县| 庆阳市| 宣汉县| 五台县| 精河县| 岑溪市| 平利县| 肇庆市| 玛沁县| 崇信县| 佛坪县| 宁远县| 获嘉县| 南城县| 廉江市| 金乡县| 蒙山县| 瓦房店市| 鞍山市| 商洛市| 昌黎县| 西华县| 平远县| 石泉县| 电白县| 合山市| 进贤县| 登封市| 天柱县| 岫岩| 景泰县| 邛崃市| 焦作市| 高邑县| 九龙县| 桃园县| 长岭县| 星子县| 宁城县| 小金县|