0

我需要帮助过滤 NSString。假设我有一个名为 myString 的字符串。

NSString *myString = @"HelloWorld";

我怎样才能过滤掉“你好”这个词。或者,如果我想删除前五个字母,我该如何删除特定数量的字母(以它开头)。

我面临的另一个例子:

NSString *myString = @"Hello hi World"; 

同样,我想删除“Hello”和之后的空格。还有一次我可能想删除“Hello hi”这两个词和之后的空格,这样就只剩下“World”了。

请有人可以解释在 NSStrings 中删除字符的基础知识吗?我对 Objective-c 的世界完全陌生,阅读类参考让我更加困惑。我只有 12 岁,所以不要因为不理解类参考而对我苛刻。

4

4 回答 4

1

对于这种情况,您需要一个 NSMutableString:

NSMutableString *mutableString = @"Hello World";
[mutableString deleteCharactersInRange:NSMakeRange([mutableString length]-11, 6)];
NSLog (@"%@", mutableString);

NSMakeRange 的解释:首先你走到字符串的末尾并倒数长度(11)。现在你在“H”字符上。现在您删除以下六个字符。“世界”现在就剩下了。

于 2012-11-09T14:00:32.733 回答
0

您不能编辑 NSString 对象,它是不可变的。您应该改用 NSMutableString。

于 2012-11-09T14:02:29.170 回答
0

NSString 有很多方法可以做几乎所有事情,但要考虑的是 NSString 是不可变的,所以所有这些方法都返回一个新字符串。如果这成为问题,您可以查看具有操作当前字符串的方法的 NSMutableString。

于 2012-11-09T13:58:13.327 回答
0

Xcode 9 • Swift 4 或更高版本

这两种从字符串中删除字符的方法:

dropLast()返回一个可选项,因此它可以为 nil。 removeLast()返回最后一个字符,不是可选的,所以如果字符串为空就会崩溃。

let string = "Hello World"

let substring1 = String(string.dropFirst())            // "ello World" 
let substring2 = String(string.dropFirst(2))           // "llo World" 

let substring3 = String(string.dropLast())             // "Hello Worl"
let substring4 = String(string.dropLast(2))            // "Hello Wor"
于 2020-01-21T08:36:35.160 回答