替换字符串iPhone中的字符

时间:2012-05-15 10:55:07

标签: iphone objective-c ios ipad nsstring

我想替换字符串中特定位置的单个字符。

实施例

字符串:123-456-7890

期望输出:123-406-7890(以0替换第五位的5)

6 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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

的信息

答案 2 :(得分:0)

替换字符串有很多方法:

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];

很多其他人使用字符串操作,但第一个是最好的。

答案 3 :(得分:0)

如果您想要实际替换第5个字符而不是任何5个字符,则需要先填写范围。

NSRange range = NSMakeRange(5, 1);
NSString *newString = [initialString stringByReplacingCharactersInRange:range withString:@"0"];

编辑:更正了制作范围长度

答案 4 :(得分:0)

你可以使用: -

NSString *replacechar = @"0";
NSString *newString= [String stringByReplacingCharactersInRange:NSMakeRange(5,1) withString:replacechar]; 

答案 5 :(得分:0)

获取第一次出现的子串的范围(即索引)。 然后在该范围内更换所需的替换值。

NSString *originalString = @"123 456 789";
NSRange r = [originalString rangeOfString:@"5"];
NSString *newString = [originalString stringByReplacingCharactersInRange:r withString:@"0"];