//解决方法:先遍历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];
}