您的位置:首页 > 移动开发 > Swift

swift 汉字转拼音

2016-04-10 01:09 471 查看


swift中提供了这样一个方法:

public func CFStringTransform(string: CFMutableString!, _ range: UnsafeMutablePointer<CFRange>, _ transform: CFString!, _ reverse: Bool) -> Bool
注释的大意是转换制定的字符串,并修改传进来的参数,只有指定范围内被修改,范围制定为空则整个字符串都被修改。如果转型成功返回true,失败返回false。我们扩展一个String类的方法:
extension String {

func transformToPinYin() -> String {

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

let string = String(mutableString)
//去掉空格
return string.stringByReplacingOccurrencesOfString(" ", withString: "")
}
}
实际中根据需求决定是否保留音标和空格。
print("中国".transformToPinYin())
输出结果:
zhongguo
zhong guo    (保留空格)
zhōng guó    (保留空格和音标)


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: