最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音詳解

 更新時(shí)間:2017年10月19日 10:07:40   作者:iOS_ziank  
將漢字轉(zhuǎn)換為拼音更利于我們大家開(kāi)發(fā)搜索功能,所以這篇文章主要給大家介紹了關(guān)于swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

前言

相信大家在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ì)腳本之家的支持。

相關(guān)文章

  • 關(guān)于Swift 4.1中的Codable改進(jì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)簡(jiǎn)單的彈幕功能

    本文主要介紹IOS 實(shí)現(xiàn)彈幕功能,這里給大家一個(gè)實(shí)例來(lái)展現(xiàn)彈幕功能,有需要的小伙伴可以參考下
    2016-07-07
  • 深入講解Swift的內(nèi)存管理

    深入講解Swift的內(nèi)存管理

    不管在什么語(yǔ)言里,內(nèi)存管理的內(nèi)容都很重要,Swift使用自動(dòng)引用計(jì)數(shù)來(lái)管理應(yīng)用程序的內(nèi)存使用。這表示內(nèi)存管理已經(jīng)是Swift的一部分,在大多數(shù)情況下,你并不需要考慮內(nèi)存的管理。本文主要介紹了Swift中內(nèi)存管理的相關(guān)資料,需要的朋友可以參考。
    2017-03-03
  • Swift?列舉內(nèi)存管理與異常處理具體代碼

    Swift?列舉內(nèi)存管理與異常處理具體代碼

    內(nèi)存管理和異常處理在任何編程語(yǔ)言中都是核心概念。盡管有很多教程解釋了Swift自動(dòng)引用計(jì)數(shù)的基本原理,但我發(fā)現(xiàn)沒(méi)有一個(gè)可以從編譯器的角度對(duì)其進(jìn)行解釋。在本文中,我們將通過(guò)詳細(xì)代碼列舉學(xué)習(xí)Swift內(nèi)存管理與異常處理
    2021-11-11
  • Swift 3.0基礎(chǔ)學(xué)習(xí)之?dāng)U展

    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
  • 深入解析Swift語(yǔ)言中的協(xié)議

    深入解析Swift語(yǔ)言中的協(xié)議

    這篇文章主要介紹了深入解析Swift語(yǔ)言中的協(xié)議,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Swift中的指針操作詳解

    Swift中的指針操作詳解

    從傳統(tǒng)的C代碼和與之無(wú)縫配合的Objective-C代碼遷移到Swift并非小工程,我們的代碼庫(kù)肯定會(huì)時(shí)不時(shí)出現(xiàn)一些和C協(xié)作的地方,如果想要繼續(xù)使用那些C API的話,了解一些基本的Swift指針操作和使用的知識(shí)會(huì)很有幫助。下面通過(guò)這篇文章一起來(lái)學(xué)習(xí)下吧。
    2017-01-01
  • Swift4.1轉(zhuǎn)場(chǎng)動(dòng)畫(huà)實(shí)現(xiàn)側(cè)滑抽屜效果

    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à)

    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 16.04上安裝 Swift 3.0及問(wèn)題解答

    本文給大家分享的是在Ubuntu系統(tǒng)中安裝 Swift 3.0的方法和步驟,以及安裝過(guò)程中有可能遇到的問(wèn)題的解答,這里推薦給小伙伴們,希望大家能夠喜歡
    2016-07-07

最新評(píng)論

新安县| 永昌县| 临西县| 天门市| 高碑店市| 北安市| 林芝县| 阜南县| 吉木乃县| 镇雄县| 麻江县| 夏津县| 西城区| 栾川县| 科尔| 黎川县| 桃园市| 三明市| 合阳县| 铁岭县| 安乡县| 正宁县| 手游| 金塔县| 阿勒泰市| 朔州市| 阜阳市| 通许县| 宁乡县| 衡山县| 八宿县| 和政县| 青铜峡市| 东光县| 含山县| 漳平市| 长沙县| 翁源县| 灵山县| 三门县| 高平市|