我需要帮助过滤NSStrings。假设我有一个名为myString的字符串。
NSString *myString = @"HelloWorld";
如何从中过滤掉“Hello”字样。或者,如果我想删除前五个字母,我该如何删除特定数量的字母(以它开头)。
我面临的另一个例子:
NSString *myString = @"Hello hi World";
同样,我想删除“Hello”以及之后的空格。另一次,我可能想要删除两个单词“Hello hi”以及之后的空格,以便只剩下“World”。
有人可以解释删除NSStrings中字符的基础知识吗?我对Objective-c的世界全新了,阅读课程参考让我更加困惑。我只有12岁,所以不要因为不理解课堂参考而苛刻。
答案 0 :(得分:1)
对于这种情况,您需要一个NSMutableString:
NSMutableString *mutableString = @"Hello World";
[mutableString deleteCharactersInRange:NSMakeRange([mutableString length]-11, 6)];
NSLog (@"%@", mutableString);
NSMakeRange的说明:首先,您转到字符串的末尾并计算长度(11)。现在你处于“H”字符。现在删除以下六个字符。 “世界”现在遗留下来。
答案 1 :(得分:0)
NSString有很多方法可以做几乎所有事情,但需要考虑的是NSString是不可变的,因此所有这些方法都返回一个新的字符串。如果这成为问题,您可以查看具有操作当前字符串的方法的NSMutableString。
答案 2 :(得分:0)
你不能编辑NSString对象,它是不可变的。你应该使用NSMutableString。
答案 3 :(得分: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"