如何以编程方式从NSString中删除特定字符



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

NSString *myString = @"HelloWorld";

我如何从中滤除" hello"一词。或者,如果我想删除前五个字母,我该如何删除特定数量的字母(以其为首先)。

我面临的另一个例子:

NSString *myString = @"Hello hi World"; 

同样,我想删除"你好"和之后的空间。另一个时间,我可能想删除两个单词" Hello Hi"和之后的空间,因此只剩下"世界"。

请有人可以解释删除NSString中角色的基础知识吗?我对Objective-C的世界完全陌生,并且阅读了班级参考,这使我更加困惑。我只有12岁,所以不要因为不了解班级参考而苛刻。

在这种情况下,您需要nsmutableString:

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

nsmakerange的说明:首先,您转到字符串的末端,然后倒入长度(11)。现在您是" H"字符。现在,您删除以下六个字符。"世界"现在被遗留了。

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

您无法编辑NSString对象,它是不可变的。您应该使用nsmutableString。

xcode 9•Swift 4或更高版本

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

droplast()返回可选的,因此可以为零。 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"

最新更新