iOS得到字符串中出现最多的字符和个数

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

[objc]  view plain  copy
  1. NSString *testStr = @"ffcnasjjkasjknkjasdjfkjdsakhjgakjkasnjkfnsjknkjnaj";  
  2.     NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];  
[objc]  view plain  copy
  1. for (int i = 0; i < testStr.length; i ++) {  
  2.         NSString *str = [testStr substringWithRange:NSMakeRange(i,1)];  
  3.         if ([dic objectForKey:str] == nil) {  
  4.             [dic setObject:@"1" forKey:str];  
  5.         }else {  
  6.             [dic setObject:[NSString stringWithFormat:@"%d", [[dic objectForKey:str] intValue]+1 ] forKey:str];  
  7.         }  
  8.     }  
(2)遍历字典,分别得到 key value 数组

[objc]  view plain  copy
  1. NSMutableArray *array1 = [[NSMutableArray alloc]init]; //key  
  2.     NSMutableArray *array2 = [[NSMutableArray alloc]init]; //value  
  3.     for (NSString *str in [dic allKeys]) {  
  4.         [array1 addObject:str];  
  5.         [array2 addObject:[dic objectForKey:str]];  
  6.     }  

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

[objc]  view plain  copy
  1. int MaxValue=[[array2 objectAtIndex:0] intValue];  
  2.     int maxIndex = 0;  
  3.     for (int i=1; i< [array2 count]; i++) {  
  4.         if ([[array2 objectAtIndex:i] intValue] > MaxValue) {  
  5.             MaxValue =[[array2 objectAtIndex:i] intValue];  
  6.             maxIndex = i;  
  7.         }  
  8.     }  
  9.     NSString *key = [array1 objectAtIndex:maxIndex];  
  10.     NSString *value = [array2 objectAtIndex:maxIndex];  
  11.     DLog(@"\n数量最多的字符为%@,%@个。",key,value);  

你可能感兴趣的:(iOS开发)