swift 汉字转拼音

swift中提供了这样一个方法

public func CFStringTransform(string: CFMutableString!,_ range: UnsafeMutablePointer<CFRange>,152)">_ transform: CFString!,152)">_ reverse: Bool) -> Bool

注释的大意是转换制定的字符串,并修改传进来的参数,只有指定范围内被修改,范围制定为空则整个字符串都被修改。如果转型成功返回true,失败返回false。

我们扩展一个String类的方法

extension String {

    transformToPinYin() -> String {

        let mutableString = NSMutableString(string: self)
        //把汉字转为拼音
        CFStringTransform(mutableString,nil,kcfStringTransformToLatin,false)
        //去掉拼音的音标
        kcfStringTransformStripDiacritics,false)

        let string = String(mutableString)
        //去掉空格
        return string.stringByReplacingOccurrencesOfString(" ",withString: "")
    }
}

实际中根据需求决定是否保留音标和空格。

print("中国".transformToPinYin())

输出结果:

zhongguo
zhong guo    (保留空格)
zhōng guó    (保留空格和音标)

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...