文档章节

阿拉伯数字转换中文

Jone_liu
 Jone_liu
发布于 2015/12/07 14:29
字数 196
阅读 15
收藏 0

- (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;

}

inese;

}


© 著作权归作者所有

共有 人打赏支持
Jone_liu
粉丝 0
博文 1
码字总数 196
作品 0
深圳
程序员
java如何替换字符串中大写中文数字为阿拉伯数字?

我有几个字符串,如 我有十块钱,你有二十三块钱,他有二元钱。我想转换成 “我有10块钱,你有23块钱,他有2元钱。”,请问如何转换,也就是如何把字符串中大写中文数字转换成阿拉伯数字。大...

jbas
2014/05/06
3.7K
8
jcseg-1.9.4 发布 - Java轻量级开源中文分词器-检测模式切分

Jcseg[dʒɛ'ke'sɛ]是使用Java开发的一个开源中文分词器,使用流行的mmseg算法实现,并且提供了最高版本的lucene-4.x和最高版本solr-4.x的分词接口. 1.9.3发布已经是三个月前的事情了,感叹...

狮子的魂
2014/06/09
1K
8
LeetCode:Integer to Roman - 阿拉伯数字到罗马数字的转换

1、题目名称 Integer to Roman (阿拉伯数字到罗马数字的转换) 2、题目地址 https://leetcode.com/problems/integer-to-roman 3、题目内容 英文:Given an integer, convert it to a roman...

北风其凉
2015/08/02
0
0
jcseg中10以内的中文数字该如何设置直接转换成阿拉伯数字

@狮子的魂 你好,想跟你请教个问题:我是将jar引入myeclipse使用的.也引入了lex-main.lex,目前10以上的中文数字都可以直接转换成阿拉伯数字,但是10以内的不会自动转,请问该用什么方式实现呢...

竹竿先生
2016/11/03
102
2
Java 开源中文分词器--Jcseg

Jcseg 是什么? Jcseg 是基于 mmseg 算法的一个轻量级开源中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了最新版本的 lucene, solr, elasti...

狮子的魂
2012/10/19
35.8K
29

没有更多内容

加载失败,请刷新页面

加载更多

开发命令行工具的 12 个最佳实践

简评:设计良好的命令行应用是极富生产力的工具,本文介绍了开发命令行工具的 12 个最佳实践 CLI 是构建产品的绝佳方式,与 Web 应用不同的是它需要的时间更少,并且功能更强大。使用Web,你...

极光推送
4分钟前
0
0
DRAM和NAND Flash合约价持续走下坡路

大伙儿关心的内存和SSD产品价格在年内有望继续迎来一波减价。 据TrendForce旗下的DRAMeXchange发布的最新报告显示,本应该是购物旺季的Q4,DRAM芯片和NAND Flash芯片的合约采购价均呈现疲软的...

linux-tao
8分钟前
0
0
Vue学习记录

Vue学习记录 Vue实例 Vue实例的创建 var vm = new Vue({ // 选项}) 数据冻结 使用 Object.freeze(),这会阻止修改现有的属性,也意味着响应系统无法再追踪变化。 var obj = { foo: 'ba...

BakerZhu
8分钟前
0
0
day124-20181022-英语流利阅读-待学习

靠打零工能走上人生巅峰吗? Daniel 2018-10-22 1.今日导读 “零工经济”,一般指通过网站或 App 获得一些零碎的工作机会,从事不稳定的工作,赚取不稳定的薪水。由于从事这样的工作门槛相比...

飞鱼说编程
13分钟前
2
0
python学习笔记

马克

孙幼凌
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部