【问题标题】:Remove characters from the beginning of an NSString从 NSString 的开头删除字符
【发布时间】:2010-08-26 07:59:04
【问题描述】:

我有一个NSString

NSString *data = @"abcdefghi";

但我希望数据是"defghi"

我能做些什么来改变它?

【问题讨论】:

    标签: objective-c cocoa cocoa-touch nsstring


    【解决方案1】:

    你可以这样做:

    NSMutableString *data = [NSMutableString stringWithString:@"abcdefghi"];
    [data deleteCharactersInRange:NSMakeRange(0, 3)];
    

    这是使用NSMutableString,它允许您删除字符/字符串并将其添加到自身。

    这里使用的方法是deleteCharactersInRange这删除了NSRange中的字母,在这种情况下范围有location0,所以它从开头开始,还有一个length 3,所以删除了里面的3个字母。

    【讨论】:

    • 你不能像这样初始化NSMutableString,你必须使用[NSMutableString stringWithString:@"abcdefghi"]
    • 谢谢,刚刚意识到这一点。编辑了我的问题。
    【解决方案2】:
    [data substringFromIndex:2]
    

    这将返回一个新的字符串,其中包含索引 (2) 之前的字符。

    【讨论】:

    • 这不会从该字符串中删除字符,而是会创建一个新字符串。虽然对于许多情况来说已经足够了:-)
    • 另外,[data substringFromIndex:3] 是作者想要的,因为documentation 表示给定的索引包含在结果中。
    【解决方案3】:

    如果您不知道要删除的字符的确切位置,则可以使用 NSScanner:Apple Guide to NSScanners。您可能还想查看指南的其余部分,因为它很好地描述了您可以在 Obj-C 中使用字符串做什么。

    【讨论】:

      【解决方案4】:

      NSString 是不可变的。除非您想创建一个新字符串,否则您需要使用 NSMutableString。看deleteCharactersInRange方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-29
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多