-1

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

例子

字符串:123-456-7890

所需输出:123-406-7890(将第五位的 5 替换为 0)

4

6 回答 6

1

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/

访问此处并阅读有关字符串的所有信息

于 2012-05-15T10:58:09.913 回答
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的信息。

于 2012-05-15T11:02:27.373 回答
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];

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

于 2012-05-15T11:04:45.057 回答
0

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

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

编辑:更正了范围长度

于 2012-05-15T11:05:27.557 回答
0

您可以使用 :-

NSString *replacechar = @"0";
NSString *newString= [String stringByReplacingCharactersInRange:NSMakeRange(5,1) withString:replacechar]; 
于 2012-05-15T11:06:35.790 回答
0

获取子字符串第一次出现的范围(即索引)。然后用您想要的替换值替换该范围。

NSString *originalString = @"123 456 789";
NSRange r = [originalString rangeOfString:@"5"];
NSString *newString = [originalString stringByReplacingCharactersInRange:r withString:@"0"];
于 2012-05-15T11:07:21.237 回答