万以内的数字转字符串
2019-03-14 本文已影响0人
imzhuzx
面试中遇到一个面试题

面试时想了十分钟只写出大概的流程,回来之后补回来完整的代码。
- (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);
}
不知道有没有更好的实现方法