原文地址:http://blog.csdn.net/zeng_zhiming/article/details/68925881

最近做项目,需要用到简体和繁体中文转换,因此封装了一个中文转换的类贡献给大家。

大概思路是这样的:

1、先加载简体中文和繁体中文码表

2、将需要转换的中文字符拿到码表上查找相应位置

3、如果查找到了,则取出另一个码表上对应的字符;如果没查到,则不进行转换。

废话不多说,直接上源代码:

//
//  ZMChineseConvert.m
//  ZMChineseConvert
//
//  Created by ZengZhiming on 2017/3/30.
//  Copyright © 2017年 菜鸟基地. All rights reserved.
//#import "ZMChineseConvert.h"@interface ZMChineseConvert ()@property(nonatomic, strong) NSString *simplifiedCode;  //!< 简体中文码表.
@property(nonatomic, strong) NSString *traditionalCode; //!< 繁体中文码表.@end@implementation ZMChineseConvert/**简体中文转繁体中文@param simpString 简体中文字符串@return 繁体中文字符串*/
+ (NSString *)convertSimplifiedToTraditional:(NSString *)simpString
{return [[ZMChineseConvert getInstance] convertSimplifiedToTraditional:simpString];
}/**繁体中文转简体中文@param tradString 繁体中文字符串@return 简体中文字符串*/
+ (NSString*)convertTraditionalToSimplified:(NSString*)tradString
{return [[ZMChineseConvert getInstance] convertTraditionalToSimplified:tradString];
}// 获取单例对象
+ (instancetype)getInstance
{static id instance = nil;static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{instance = [[self alloc] init];});return instance;
}- (instancetype)init
{self = [super init];if (self) {// 加载简体中文和繁体中文码表NSString *resourcePath = [ [NSBundle mainBundle] resourcePath];self.simplifiedCode = [NSString stringWithContentsOfFile:[resourcePath stringByAppendingPathComponent:@"SimplifiedCode.txt"] encoding:NSUTF8StringEncoding error:nil];self.traditionalCode = [NSString stringWithContentsOfFile:[resourcePath stringByAppendingPathComponent:@"TraditionalCode.txt"] encoding:NSUTF8StringEncoding error:nil];}return self;
}/**简体中文转繁体中文@param simpString 简体中文字符串@return 繁体中文字符串*/
- (NSString *)convertSimplifiedToTraditional:(NSString *)simpString
{// 空值判断if (IsNullString(simpString)) {return nil;}// 存储转换结果NSMutableString *resultString = [NSMutableString string];// 遍历字符串中的字符NSInteger length = [simpString length];for (NSInteger i = 0; i < length; i++){// 在简体中文中查找字符位置,如果存在则取出对应的繁体中文NSString *simCharString = [simpString substringWithRange:NSMakeRange(i, 1)];NSRange charRange = [self.simplifiedCode rangeOfString:simCharString];if(charRange.location != NSNotFound) {NSString *tradCharString = [self.traditionalCode substringWithRange:charRange];[resultString appendString:tradCharString];}else{[resultString appendString:simCharString];}}return resultString;
}/**繁体中文转简体中文@param tradString 繁体中文字符串@return 简体中文字符串*/
- (NSString *)convertTraditionalToSimplified:(NSString *)tradString
{// 空值判断if (IsNullString(tradString)) {return nil;}// 存储转换结果NSMutableString *resultString = [NSMutableString string];// 遍历字符串中的字符NSInteger length = [tradString length];for (NSInteger i = 0; i < length; i++){// 在繁体中文中查找字符位置,如果存在则取出对应的简体中文NSString *tradCharString = [tradString substringWithRange:NSMakeRange(i, 1)];NSRange charRange = [self.traditionalCode rangeOfString:tradCharString];if(charRange.location != NSNotFound) {NSString *simCharString = [self.simplifiedCode substringWithRange:charRange];[resultString appendString:simCharString];}else{[resultString appendString:tradCharString];}}return resultString;
}@end

使用也非常简单:

/** 简转繁点击响应 */
- (IBAction)onSimpToTradAction:(UIButton *)sender {_resultLabel.text = [ZMChineseConvert convertSimplifiedToTraditional:_textField.text];
}/** 繁转简点击响应 */
- (IBAction)onTradToSimpAction:(UIButton *)sender {_resultLabel.text = [ZMChineseConvert convertTraditionalToSimplified:_textField.text];
}
Demo请移步:https://github.com/zeng-zhiming/ZMChineseConvert
如果大家有更好的简体和繁体中文转换方式,请在博客留言,楼主不胜感激。
原文地址:http://blog.csdn.net/zeng_zhiming/article/details/68925881

ios开发 之 简体和繁体中文转换相关推荐

  1. opencc解决简体中文与繁体中文转换问题【python】

    1.Opencc-python 今天学习文本分析中偶然想到繁体中文要如何分割的问题,于是联想到将繁体中文先转换为简体中文,查过网上的资料后发现比较好用的是opencc-python,以及下载zh_wi ...

  2. JavaScript简体繁体中文转换

    <script type="text/javascript" language="javascript"> <!-- function win ...

  3. 中文简体与繁体的转换

    虽然说中文繁体与简体的转换在项目中使用到的概念很小,但是这也算是一个有工具类了,为了以后可能的需要,在这里说一下: package com.iflytek.ZJFConverter;import co ...

  4. java 中文简体与繁体的转换

    虽然说中文繁体与简体的转换在项目中使用到的概念很小,但是这也算是一个有工具类了,为了以后可能的需要,在这里说一下: import com.spreada.utils.chinese.ZHConvert ...

  5. python tkinter 中文文档_Python实现中文文档的简体与繁体互相转换

    封面图片:<Python程序设计实验指导书>,董付国编著,清华大学出版社,2019.4 ============= 本文重点是一个第三方工具的使用,首先从下面的地址下载这两个文件并存放于程 ...

  6. Python实现中文文档的简体与繁体互相转换

    本文重点是一个第三方工具的使用,首先从下面的地址下载这两个文件并存放于程序文件所在文件夹. https://raw.githubusercontent.com/skydark/nstools/mast ...

  7. 利用javascript实现简体与繁体的转换

    这段代码只是利用Javascript实现了简繁体的相互转化,因为仅操作当前页面,无刷新所以速度快,转换过程流畅. 话不多说上正餐: var Default_isFT = 0 //默认是否繁体,0-简体 ...

  8. python简体中文、繁体中文转换

    使用hanziconv这个库:pip install hanziconv 简体转繁体 from hanziconv import HanziConvprint(HanziConv.toTraditio ...

  9. java将简体中文_【Java】简体中文、繁体中文转换

    项目中用到繁体中文语言适配,目前已经有开源的框架可以将简体中文转换成繁体中文,在此基础上封装了一个工具类,可以直接将简体中文的strings.xml转换成繁体中文的strings.xml. 引用Jar ...

  10. 【Java】简体中文、繁体中文转换

    个人博客: http://www.milovetingting.cn 项目中用到繁体中文语言适配,目前已经有开源的框架可以将简体中文转换成繁体中文,在此基础上封装了一个工具类,可以直接将简体中文的st ...

最新文章

  1. ios 使用UINavagationController时,push,pop方法执行的一些方法
  2. Flink SQL Client读Kafka+流计算(DDL方式+代碼嵌入DDL/SQL方式)
  3. 【转】10个让人受益的管理原理
  4. 速度提升一倍,无需实例掩码预测即可实现全景分割
  5. mysql连接费时_连接mysql和 建索引花费
  6. 智慧电商erp通用版管理系统+采购管理+仓库管理+订单管理+财务管理+系统管理+Axure高保真交互ERP通用版电商web端管理系统+全局说明+竞品分析+协同办公
  7. 计算机绘图国标规定,(0922202计算机绘图大作业.doc
  8. 如何在 Zabbix 执行远程主机的脚本或指令?如何用 Zabbix 监控网站的访问量?
  9. Array对象的三种属性实例
  10. python段落注释的语法格式是_Python 基础语法
  11. 怎样把word文档里的html格式去掉,word文档去除格式
  12. 成为创新高手的18堂课
  13. linux安装mailx发邮件
  14. linux 脚本 expected,使用expect实现shell中scp自动输入密码
  15. 单片机定时器0,TH0和TL0初值的计算
  16. 相机快门之:电子快门
  17. (PMP)三、项目经理的角色
  18. 计算机网络学术期刊,中国计算机学会推荐的计算机网络方向国际学术会议与国际学术期刊...
  19. 树莓派上编译安装hostapd
  20. 办公技巧:如何快速提取办公文档里面的所有图片

热门文章

  1. Linux下通过rdesktop连接Windows远程桌面
  2. 投票丨鹿晗关晓彤曝光恋情 是如何搞垮新浪服务器的
  3. 【面试题】能从底层角度聊聊volatile关键字的原理吗?
  4. 为知笔记 | 3 分钟创建格式美美的笔记
  5. npm ERR path /Users/user/Desktop/app/node_modules/node-sass
  6. python运势预测程序_运势.py · Scar/Python-Spider - Gitee.com
  7. Android之提示MIME type application/octet-stream cannot be inserted into **/images expected
  8. 计算机常见的运算符,常见运算符
  9. 网络字节序与主机字节序的转换 - HEN_MAN的专栏 - 博客频道 - CSDN.NET
  10. html新浪短域名api,新浪短网址API接口