我想替换字符串中特定位置的单个字符。
例子
字符串:123-456-7890
所需输出:123-406-7890(将第五位的 5 替换为 0)
我想替换字符串中特定位置的单个字符。
例子
字符串:123-456-7890
所需输出:123-406-7890(将第五位的 5 替换为 0)
访问此处并阅读有关字符串的所有信息
使用stringByReplacingCharactersInRange:withString:
, 形成NSRange
变量来表示第 5 个位置。
NSString *phoneNumber = @"123-456-7890";
NSString *newString = [phoneNumber stringByReplacingCharactersInRange:NSMakeRange(5, 1) withString:@"0"];
NSLog(@"%@", newString);
Output: 123-406-7890
阅读所有关于NSString的信息。
替换字符串有很多方法:
NSString *str = [yourString stringByReplacingOccuranceOfString:@"5" withString:@"0"];
第二种方法首先获取字符串范围,例如:
NSRange range = [yourSting rangeOfString:@"5"];
NSString *first = [yourString substringToIndex:range.location];
NSString *second = [yourString substringFromIndex:range.location+range.length];
NSString *yourNewStr = [NSString stringWithFormat:@"%@0%@",first,second];
还有很多其他使用字符串操作的,但第一个是最好的。
如果您想实际替换第 5 个字符而不是任何 5,您需要先创建一个范围。
NSRange range = NSMakeRange(5, 1);
NSString *newString = [initialString stringByReplacingCharactersInRange:range withString:@"0"];
编辑:更正了范围长度
您可以使用 :-
NSString *replacechar = @"0";
NSString *newString= [String stringByReplacingCharactersInRange:NSMakeRange(5,1) withString:replacechar];
获取子字符串第一次出现的范围(即索引)。然后用您想要的替换值替换该范围。
NSString *originalString = @"123 456 789";
NSRange r = [originalString rangeOfString:@"5"];
NSString *newString = [originalString stringByReplacingCharactersInRange:r withString:@"0"];