iOS开发 - 得到字符串中出现最多的字符

来源:互联网 发布:webservice和json区别 编辑:程序博客网 时间:2024/06/06 00:36

(1)遍历字符串,得到字符对应个数字典

NSString *testStr = @"ffcnasjjkasjknkjasdjfkjdsakhjgakjkasnjkfnsjknkjnaj";    NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];

for (int i = 0; i < testStr.length; i ++) {        NSString *str = [testStr substringWithRange:NSMakeRange(i,1)];        if ([dic objectForKey:str] == nil) {            [dic setObject:@"1" forKey:str];        }else {            [dic setObject:[NSString stringWithFormat:@"%d", [[dic objectForKey:str] intValue]+1 ] forKey:str];        }    }
(2)遍历字典,分别得到keyvalue数组

NSMutableArray *array1 = [[NSMutableArray alloc]init]; //key    NSMutableArray *array2 = [[NSMutableArray alloc]init]; //value    for (NSString *str in [dic allKeys]) {        [array1 addObject:str];        [array2 addObject:[dic objectForKey:str]];    }

(3)得到最大value,并根据array2index得到其对应的key

int MaxValue=[[array2 objectAtIndex:0] intValue];    int maxIndex = 0;    for (int i=1; i< [array2 count]; i++) {        if ([[array2 objectAtIndex:i] intValue] > MaxValue) {            MaxValue =[[array2 objectAtIndex:i] intValue];            maxIndex = i;        }    }    NSString *key = [array1 objectAtIndex:maxIndex];    NSString *value = [array2 objectAtIndex:maxIndex];    DLog(@"\n数量最多的字符为%@,%@个。",key,value);

打印结果为:数量最多的字符为j,12个。




0 0