美文网首页
万以内的数字转字符串

万以内的数字转字符串

作者: imzhuzx | 来源:发表于2019-03-14 16:51 被阅读0次

面试中遇到一个面试题

面试题

面试时想了十分钟只写出大概的流程,回来之后补回来完整的代码。

- (void)numberTransformString{
    NSArray *numberArray = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9"];
    NSArray *stringArray = @[@"壹", @"贰", @"叁", @"肆", @"伍", @"陆", @"柒", @"捌", @"玖"];
    NSArray *stringsArray = @[@"", @"拾", @"百", @"仟", @"万", @"十"];
    NSString  *numberString = @"70802";
    NSMutableArray *numbersArray = [[NSMutableArray alloc] init];
    for (NSInteger i = numberString.length-1; i >= 0 ; i --) {
        NSString *numString = [numberString substringWithRange:NSMakeRange(i, 1)];
        [numbersArray addObject:numString];
    }
    NSMutableString *resultStr = [[NSMutableString alloc] init];
    BOOL is0 = NO;
    for (NSInteger i = numbersArray.count-1; i >= 0; i--) {
        NSString *num = numbersArray[I];
        if ([num isEqualToString:@"0"]) {
            if (is0 == YES) {
                is0 = NO;
            }else{
                if (i != 0) {
                    [resultStr appendString:@"零"];
                }
                is0 = YES;
            }
        }else{
            for (int m = 0; m < numberArray.count; m ++) {
                NSString *numStr = numberArray[m];
                if ([num isEqualToString:numStr]) {
                    NSString *newStr = stringArray[m];
                    NSString *newStr2 = stringsArray[I];
                    [resultStr appendString:newStr];
                    [resultStr appendString:newStr2];
                }
            }
            is0 = NO;
        }
    }
    NSLog(@"%@", resultStr);
}

不知道有没有更好的实现方法

相关文章

网友评论

      本文标题:万以内的数字转字符串

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