【发布时间】:2010-08-26 07:59:04
【问题描述】:
我有一个NSString
NSString *data = @"abcdefghi";
但我希望数据是"defghi"
我能做些什么来改变它?
【问题讨论】:
标签: objective-c cocoa cocoa-touch nsstring
我有一个NSString
NSString *data = @"abcdefghi";
但我希望数据是"defghi"
我能做些什么来改变它?
【问题讨论】:
标签: objective-c cocoa cocoa-touch nsstring
你可以这样做:
NSMutableString *data = [NSMutableString stringWithString:@"abcdefghi"];
[data deleteCharactersInRange:NSMakeRange(0, 3)];
这是使用NSMutableString,它允许您删除字符/字符串并将其添加到自身。
这里使用的方法是deleteCharactersInRange这删除了NSRange中的字母,在这种情况下范围有location的0,所以它从开头开始,还有一个length 3,所以删除了里面的3个字母。
【讨论】:
NSMutableString,你必须使用[NSMutableString stringWithString:@"abcdefghi"]。
[data substringFromIndex:2]
这将返回一个新的字符串,其中包含索引 (2) 之前的字符。
【讨论】:
[data substringFromIndex:3] 是作者想要的,因为documentation 表示给定的索引包含在结果中。
如果您不知道要删除的字符的确切位置,则可以使用 NSScanner:Apple Guide to NSScanners。您可能还想查看指南的其余部分,因为它很好地描述了您可以在 Obj-C 中使用字符串做什么。
【讨论】:
NSString 是不可变的。除非您想创建一个新字符串,否则您需要使用 NSMutableString。看deleteCharactersInRange方法。
【讨论】: