1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| NSString *newNameStr = nil; if(originStr.length > 1){ NSMutableString *mStr = [[NSMutableString alloc] init]; if(_range.location > 0){ NSString *beforeStr = [originStr substringWithRange:NSMakeRange(0, _range.location)]; [mStr appendString:beforeStr]; BOOL bCenterInsertFlag = NO; BOOL bNeedInsertAtFlag = YES; if(_range.location + 1 < originStr.length){ bCenterInsertFlag = YES;
NSString *lastChar = [beforeStr substringFromIndex:beforeStr.length-1]; if([lastChar isEqualToString:@"@"]){ bNeedInsertAtFlag = NO; }
if(beforeStr.length > 2 && beforeStr.length-2 > 0){ NSString *lastTwoChar = [beforeStr substringFromIndex:beforeStr.length-2]; if([lastTwoChar isEqualToString:@"@@"]){ [mStr replaceOccurrencesOfString:@"@@" withString:@"@" options:nil range:NSMakeRange(0, mStr.length)]; } }
}else{ NSString *lastChar = [beforeStr substringFromIndex:beforeStr.length-1]; if([lastChar isEqualToString:@"@"]){ bNeedInsertAtFlag = NO; } }
if(bNeedInsertAtFlag){ [mStr appendString:@"@"]; } [mStr appendString:nameStr]; if(bCenterInsertFlag){ NSString *afterStr = [originStr substringFromIndex:_range.location+1]; [mStr appendString:afterStr]; } }else{ [mStr appendString:@"@"]; [mStr appendString:nameStr]; NSString *afterStr = [originStr substringFromIndex:1]; [mStr appendString:afterStr]; } newNameStr = mStr; }else{ newNameStr = [NSString stringWithFormat:@"%@%@",mutableStr,nameStr]; }
|