iOS 汉语数字与阿拉伯数字的相互转化
前言
这两天对接阿里云的人工智能语音(一句话识别),语音识别度很高,但发现一个问题—–> 语音录入数字,总是识别汉语数字,那么久需要进行相互转化了。
阿拉伯数字转化为汉语数字
+(NSString *)translation:(NSString *)arebic{ NSString *str = arebic;NSArray *arabic_numerals = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0"];NSArray *chinese_numerals = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零"];NSArray *digits = @[@"个",@"十",@"百",@"千",@"万",@"十",@"百",@"千",@"亿",@"十",@"百",@"千",@"兆"];NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chinese_numerals forKeys:arabic_numerals];NSMutableArray *sums = [NSMutableArray array];for (int i = 0; i < str.length; i ++) {NSString *substr = [str substringWithRange:NSMakeRange(i, 1)];NSString *a = [dictionary objectForKey:substr];NSString *b = digits[str.length -i-1];NSString *sum = [a stringByAppendingString:b];if ([a isEqualToString:chinese_numerals[9]]){if([b isEqualToString:digits[4]] || [b isEqualToString:digits[8]]){sum = b;if ([[sums lastObject] isEqualToString:chinese_numerals[9]]){[sums removeLastObject];}}else{sum = chinese_numerals[9];}if ([[sums lastObject] isEqualToString:sum]){continue;}}[sums addObject:sum];}NSString *sumStr = [sums componentsJoinedByString:@""];NSString *chinese = [sumStr substringToIndex:sumStr.length-1];NSLog(@"%@",str);NSLog(@"%@",chinese);return chinese;
}
汉语数字转阿拉伯数字
+(NSString *)translatNum:(NSString *)arebic{NSString *str = arebic;NSArray *arabic_numerals = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0",@"0"];NSArray *chinese_numerals = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零", @"十"];NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:arabic_numerals forKeys:chinese_numerals];NSMutableArray *sums = [NSMutableArray array];for (int i = 0; i < str.length; i ++) {NSString *substr = [str substringWithRange:NSMakeRange(i, 1)];NSString *sum = substr;if([chinese_numerals containsObject:substr]){NSLog(@"=====%@", substr);if([substr isEqualToString:@"十"] && i < str.length){NSString *nextStr = [str substringWithRange:NSMakeRange(i+1, 1)];NSLog(@"-----%@", nextStr);if([chinese_numerals containsObject:nextStr]){continue;}}sum = [dictionary objectForKey:substr];}NSLog(@"====%@", sum);[sums addObject:sum];}NSString *sumStr = [sums componentsJoinedByString:@""];return sumStr;}
iOS 汉语数字与阿拉伯数字的相互转化相关推荐
- 汉语数字或罗马数字转化为阿拉伯数字:例如:一百二十三为123、III为3
汉语数字转化为阿拉伯数字 方式一:得到结果集然后进行遍历 运行结果展示 方式二:结果集一直变化中 运行结果展示 罗马数字转化为阿拉伯数字 运行结果展示 方式一:得到结果集然后进行遍历 public s ...
- 如何将汉语数字转换成阿拉伯数字!
其实这个题目本身都还有点问题.汉语数字的表达方式何止一两种,而且还有很多不规范的称呼.所以,转换起来也是比较麻烦的.并且由于每个人的叫法不同,因此也不容易判定用户的输入是否合符常理和规范.这就只能靠大 ...
- java中文数字与阿拉伯数字相互转换
最近有一个业务需要用到中文数字与阿拉伯数字相互转换,废话不多说直接上代码. 中文数字/阿拉伯数字互转第一次完善:https://blog.csdn.net/qq_26896085/article/de ...
- PHP将英文数字转换为阿拉伯数字
PHP将英文数字转换为阿拉伯数字,如zero;three;five;six;eight;one转换为035681.那么我们可以通过PHP中explode().trim()函数.foreach以及Swi ...
- php判断是否为数字_PHP将英文数字转换为阿拉伯数字
PHP将英文数字转换为阿拉伯数字,如zero;three;five;six;eight;one转换为035681.那么我们可以通过PHP中explode().trim()函数.foreach以及Swi ...
- python数字转中文字符_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- python数字转换_Python实现中文数字转换为阿拉伯数字的方法示例
本文实例讲述了Python实现中文数字转换为阿拉伯数字的方法.分享给大家供大家参考,具体如下: 一.需求 今天写了三千二百行代码. 今天写了3200行代码. 两行意思相同,只是表达方式不太能够,统一掉 ...
- 中文数字与阿拉伯数字转换(Python)
cn2an 是一个快速转化 中文数字 和 阿拉伯数字 的工具包 相关链接 cn2an工具包Github地址 在线测试平台 install git clone https://github.com/Ai ...
- android数字转汉字,【原创】最精简的中文数字和阿拉伯数字互相转换函数
public class ChineseNumUtils { /** * 中文数字转阿拉伯数字 * (长度不能超过long最大值) * * @param chNum 中文数字 * @return 阿拉 ...
- CSS 仿 iOS 系统通知数字样式
iOS 的图标上显示通知的数字: 下面代码就是用 CSS 模仿数字的样式: /*********************************************************/ /* ...
最新文章
- 6.7 程序示例--K-Means-机器学习笔记-斯坦福吴恩达教授
- sql server 部署_将程序包部署到SQL Server集成服务目录(SSISDB)
- js数组去重的4个方法
- qchart 怎么点击一下 出一条线_疏通身上一条线,很多难缠病,不知不觉消失了!...
- 利用Excel进行简单线性规划求解
- python ctype_Python中用ctype库
- 如何看懂congestion map
- Linux-07-GNU-GPL-自由软件知识小结(L002-21)
- HDU1870 愚人节的礼物【堆栈+输入输出】
- [转] 教师的备课主要解决哪些问题?
- 100个python算法超详细讲解:搬山游戏
- PHP脚本中的两种换行符的区别
- 啥是单点登录及单点登录原理
- 【折半搜索-经典题目】中山纪念中学暑期游Day13——【GDOI2017模拟8.15】Buy
- STM32处理器定时器分析(实现一个定时中断)
- dcc-garch matlab,dcc-garch原理简介和模型实现
- 单片机:c语言实现秒表计数(按键开始,结束,重置)
- 高校毕业生如何实现“云端”就业
- 简单的CTF web密码爆破
- 第十四届蓝桥杯三月真题刷题训练——第 26 天
热门文章
- 批量修改图片尺寸,不用ps也可以
- 今天来看一下云测平台的测试实验
- windows powershell 将U盘启动盘还原回普通U盘
- lcd驱动移植的分析linux3.2内核,chipsee为例,液晶屏AT070TN92
- 互联网日报 | 5月26日 星期三 | 华为鸿蒙操作系统6月2日发布;特斯拉已在中国建立数据中心;百度发起“高考+”计划...
- 网站域名如何接入腾讯云CDN业务详细步骤!
- u盘安全删除 linux,如何安全删除U盘技巧
- dns劫持以及利用Linux在20ms内只返回50次ping无法链接的漏洞
- 单因素方差分析 OR 重复测量方差分析
- IDEA——一个项目启动多个服务