/**
* 将阿拉伯数字转换为中文数字
*/
+(NSString *)translationArabicNum:(NSInteger)arabicNum
{
NSString *arabicNumStr = [NSString stringWithFormat:@"%ld",(long)arabicNum];
NSArray *arabicNumeralsArray = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0"];
NSArray *chineseNumeralsArray = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零"];
NSArray *digits = @[@"个",@"十",@"百",@"千",@"万",@"十",@"百",@"千",@"亿",@"十",@"百",@"千",@"兆"];
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chineseNumeralsArray forKeys:arabicNumeralsArray];
if (arabicNum < 20 && arabicNum > 9) {
if (arabicNum == 10) {
return @"十";
}else{
NSString *subStr1 = [arabicNumStr substringWithRange:NSMakeRange(1, 1)];
NSString *a1 = [dictionary objectForKey:subStr1];
NSString *chinese1 = [NSString stringWithFormat:@"十%@",a1];
return chinese1;
}
}else{
NSMutableArray *sums = [NSMutableArray array];
for (int i = 0; i < arabicNumStr.length; i ++)
{
NSString *substr = [arabicNumStr substringWithRange:NSMakeRange(i, 1)];
NSString *a = [dictionary objectForKey:substr];
NSString *b = digits[arabicNumStr.length -i-1];
NSString *sum = [a stringByAppendingString:b];
if ([a isEqualToString:chineseNumeralsArray[9]])
{
if([b isEqualToString:digits[4]] || [b isEqualToString:digits[8]])
{
sum = b;
if ([[sums lastObject] isEqualToString:chineseNumeralsArray[9]])
{
[sums removeLastObject];
}
}else
{
sum = chineseNumeralsArray[9];
}
if ([[sums lastObject] isEqualToString:sum])
{
continue;
}
}
[sums addObject:sum];
}
NSString *sumStr = [sums componentsJoinedByString:@""];
NSString *chinese = [sumStr substringToIndex:sumStr.length-1];
return chinese;
}
}
阿拉伯数字转换为中文数字
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原创 (转载说明出处) 应该没有见过更精简的 中文数字和阿拉伯数字相互转换函数了。支持一些语法修正,欢迎测试反馈bug
- 昨日,在 FCC 平台整整用了两三小时,才刷出一道 JS 算法题,回首而看,最终的代码也就那么多行,记录过程,写文...