美文网首页
把一串阿拉伯数字转为汉字的数字

把一串阿拉伯数字转为汉字的数字

作者: 高乔人 | 来源:发表于2018-09-11 10:18 被阅读6次
    -   (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;
              }
         }
         //128281
         [sums addObject:sum];
      }
    
       NSString *sumStr = [sums componentsJoinedByString:@""];
      NSString *chinese = [sumStr substringToIndex:sumStr.length-1];
     NSLog(@"%@",str);
     NSLog(@"%@",chinese);
      return chinese;
         }

    相关文章

      网友评论

          本文标题:把一串阿拉伯数字转为汉字的数字

          本文链接:https://www.haomeiwen.com/subject/txvygftx.html