swift如何利用系统库将汉字转换为拼音详解
时间:2019-04-07
本文章向大家介绍swift如何利用系统库将汉字转换为拼音详解,主要包括swift如何利用系统库将汉字转换为拼音详解使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
相信大家在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 }
希望这些方法能够对大家有用。
总结
以上就是这篇文章的全部内容了,本文还有许多不足,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
- 某租车系统JAVA代码审计
- 深入挖掘APP克隆实验
- Sickle:推荐一款优质ShellCode开发工具
- 看我教你如何修改QQ安装包实现绕过QQ语音红包验证来领红包
- “奇幻熊”(APT28)组织最新攻击
- GDB调试CVE-2018-5711 PHP-GD拒绝服务漏洞
- 高效与争议并存:大规模自动化渗透工具AutoSploit
- Android应用测试速查表
- ADB配置提权漏洞(CVE-2017-13212)原理与利用分析
- Fuzz自动化Bypass软WAF姿势
- Web黑盒渗透思路之猜想
- ZZCMS v8.2 最新版SQL注入漏洞
- 一款轻量级Web漏洞教学演示系统(DSVW)
- 使用Burpsuite代理和pypcap抓包进行抢红包的尝试
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- GO 依赖管理工具go Modules(官方推荐)
- Go 之 interface接口理解
- Go 三个点(...)用法
- Go操作Elasticsearch
- Golang 跨域
- 使用AB对Nginx压测和并发预估
- gin集成swagger构建api文档
- golang 开源后台管理系统
- vue-element-admin 后台动态加载菜单
- golang之数据验证validator
- golang之JWT实现
- golang 单点登录系统(go-sso)
- nginx优化https(ocsp)
- vue-element-admin 上传upload图片慢问题处理
- Centos8 下安装最新 OpenCV4.3