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

该博客介绍了如何在iOS中遍历字符串,统计每个字符出现的次数,并找出出现频率最高的字符及其数量。通过创建字典记录字符计数,然后比较并找出最大值,最终输出数量最多的字符和其对应的个数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(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);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值