iOS开发

iOS数字转文字

2017-04-05  本文已影响0人  王建翔

/**

*通过数字得到相应的文字

*

*@param arebic数字Str @"1234567890"

*

*@return文字对应的数字

*/

- (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(@"%@ to %@",str,chinese);

return chinese;

}

上一篇 下一篇

猜你喜欢

热点阅读