OC学习:求字符串(NSString)中重复出现的元素和重复次数最多的元素

  在这里没有用到NSMutableArray数组,这是为了方便初学者。

以下是详细的代码:

NSString *string0 = @"别看双鱼一脸天真烂漫的就以为他们真的好骗,人家精着呢!有些人是真傻,而双鱼是装傻,玩的这叫大隐隐于市!双鱼把很多东西早就看透彻了,不愿意沾染一些乱七八糟的事。心中有座柏拉图,甘愿守着份干净纯洁的少男少女心,幻想到天荒地老。";

         NSInteger sum = 0;

        NSInteger sumcount = 0;
        NSString *stringCount;
         NSString *stringPoint = [string0 stringByReplacingOccurrencesOfString:@"," withString:@""];
        
        for (int i = 0; i < [stringPoint length]; i++) {
            NSString *str = [stringPoint substringWithRange:NSMakeRange(0, 1)];    //range.laction = 0 取得字符串的首位字符,因为stringPoint是在减少的,只有当range.laction = 0 时才不会超出范围。
            NSString *string1 = [stringPoint stringByReplacingOccurrencesOfString:str withString:@""];    //去除所有的 str字符 元素。
            NSInteger count = [stringPoint length] - [string1 length];//求元素重复出现的次数
            if (count >= sum) {
                if(count >sum) {
                    sum = count;
                    stringCount = str;
                }else{
                    sum =count;
                }
            }
            stringPoint = string1;    //stringPoint的元素在减少,重复的元素已经被排除。在进for循环时不在重复求已经出现的重复的元素。
            i = -1;    //由于【stringPoint length】在减少到0,这里控制for结束的关键成了【stringPoint length】。
            if(count > 1)NSLog(@"出现次数最为:%ld,字符为:%@(%ld)",count,str,sumcount++);
            
        }
        NSLog(@"出现次数最多为:%ld,字符为:%@",sum,stringCount);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值