国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固阳县| 丰都县| 柳河县| 海林市| 太康县| 松阳县| 富民县| 汝阳县| 丰县| 青阳县| 子洲县| 图片| 台东县| 台东县| 灵寿县| 方山县| 河间市| 沽源县| 福贡县| 内乡县| 故城县| 嘉鱼县| 阿拉善左旗| 陆河县| 肃北| 青岛市| 利川市| 成都市| 新建县| 望谟县| 辉县市| 屏南县| 广德县| 日喀则市| 遵化市| 南通市| 嘉荫县| 乌兰察布市| 佛坪县| 桃江县| 茶陵县|