字符串处理方法

//获取字符串中多个相同字符的位置index
//解决方法:先遍历AString 找到所有的abc 所在位置的index,然后通过index 将字符串进行替换

- (NSMutableArray*)getRangeStr:(NSString*)text findText:(NSString*)findText {
    
    NSMutableArray * arrayRanges = [NSMutableArray arrayWithCapacity:3];
    
    if (findText == nil && [findText isEqualToString:@""]) {
        return  nil;
    }
    
    //获取第一次出现的range
    NSRange range = [text rangeOfString:findText];
    
    if (range.location != NSNotFound && range.length != 0) {
        //将第一次假如到数组
        [arrayRanges addObject:[NSNumber numberWithInteger:range.location]];
        
        NSRange range1 = {0,0};
        
        NSInteger location = 0;
        
        NSInteger length = 0;
        
        for (int i = 0;; i++) {
            
            if (0 == i) {
             
              //去掉这个abc 字符串
                
                location = range.location + range.length;
                
                length = text.length - range.location - range.length;
                
                range1 = NSMakeRange(location, length);
                
            }else {
                
                location = range1.location + range1.length;
                
                length = text.length - range1.location - range1.length;
                
                range1 = NSMakeRange(location, length);
            }
            
            //在一个range范围内查找另一个字符串的range
            
            range1 = [text rangeOfString:findText options:NSCaseInsensitiveSearch range:range1];
            
            if (range1.location == NSNotFound && range1.length == 0) {
                break;
            }
            else {
                //添加符合条件的location进数组
                [arrayRanges addObject:[NSNumber numberWithInteger:range1.location]];
            }
        }
        
        return arrayRanges;
    }
    
    return nil;
}


//数量最多的字符

- (NSString*)getMaxCountCharacterWithStr:(NSString*) testStr {
    
    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];
        }
    }
    //遍历字典,分别得到key 和value 数组
    
    NSMutableArray * array1 = [[NSMutableArray alloc] init];
    NSMutableArray * array2 = [[NSMutableArray alloc]init];
    
    for (NSString * str in [dic allKeys]) {
        [array1 addObject:str];
        [array2 addObject:[dic objectForKey:str]];
    }
    
    //得到最大的value,并根据arry2的index 得到其对应的key
    
    int maxValue = [[array2 objectAtIndex:0] intValue];
    
    int maxIndex = 0;
    
    for (int i = 1; i < [array2 count]; i++) {
        if ([[array2 objectAtIndex:i] intValue] > maxIndex) {
            maxValue = [[array2 objectAtIndex:i] intValue];
            maxIndex = i;
        }
    }
    
    NSString * key = [array1 objectAtIndex:maxIndex];
    
    NSString * value = [array2 objectAtIndex:maxIndex];
    
    NSLog(@"\n数量最多的字符为:%@,%@个",key,value);
    
    return [array1 objectAtIndex:maxIndex];
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值