金额数字转中文大写(银行所需)

- (NSString *)moneyStringWithDigitStr:(NSString *)digitString

{

    NSLog(@"The begin string:%@",digitString);

    NSArray *datas = [NSArrayarrayWithObjects:@"", @"", @"", @"", @"", @"", @"", @"", @"", @"", nil];

    NSArray *infos = [NSArrayarrayWithObjects:@"", @"", @"", @"", @"", @"", @"", @"", @"亿", @"", @"", @"", @"", nil];

    

    NSMutableString *processString = [[NSMutableString alloc] initWithString:digitString];

    

    // creat a new mutable string

    NSMutableString *resultString = [NSMutableStringstring];

    int i = 0;

    int j = processString.length;

    

    // str:165047523

    // 1亿 6 5 0 4 7 5 2 3 ——> 壹亿 陆仟 伍佰 零拾 肆万 柒仟 伍佰 贰拾 叁分

    

    while (processString.length != 0) {

        

        // Add location tags after each number

        [resultString insertString:[infos objectAtIndex:i] atIndex:0];

        i++;

        

        // Obtain a character (a number), then the number corresponding uppercase characters restructuring to the ‘resultString’

        j--;

        NSString *specifiedNumberStrAtIndex = [processString substringWithRange:NSMakeRange(j, 1)];

        int specifiedNumber = [specifiedNumberStrAtIndex intValue];

        

        int number = specifiedNumber % 10;

        

        [resultString insertString:[datas objectAtIndex:number] atIndex:0];

        

        // Delete of a character, so that the next time through the loop with

        [processString deleteCharactersInRange:NSMakeRange(j, 1)];

        

        NSLog(@"resultString = %@",resultString);

    }

    

    NSString *moneyString = [NSString stringWithFormat:@"%@",resultString];

    

    // To use regular expressions to replace specific characters

    NSError *error=nil;

    NSArray *expressions = [NSArrayarrayWithObjects:@"[拾佰仟]", @"+亿", @"+", @"+", @"+",@"亿万",nil];

    NSArray *changes = [NSArray arrayWithObjects:@"", @"亿",@"",@"",@"",@"亿",nil];

    

    for (int k = 0; k < 6; k++)

    {

        NSRegularExpression *reg=[[NSRegularExpressionalloc] initWithPattern:[expressions objectAtIndex:k] options:NSRegularExpressionCaseInsensitiveerror:&error];

        

        moneyString = [reg stringByReplacingMatchesInString:moneyString options:0range:NSMakeRange(0, moneyString.length) withTemplate:[changes objectAtIndex:k]];

        

        NSLog(@"moneyString = %@",moneyString);

    }

    return moneyString;

}

 

 

祝您愉快开心 ^_^

原文地址:https://www.cnblogs.com/tianglin/p/3079852.html