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

Posted

技术标签:

【中文标题】如何以编程方式从 NSString 中删除特定字符?【英文标题】:How can I remove specific characters from an NSString programmatically? 【发布时间】:2012-11-09 13:49:51 【问题描述】:

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

NSString *myString = @"HelloWorld";

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

我面临的另一个例子:

NSString *myString = @"Hello hi World"; 

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

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

【问题讨论】:

阅读 NSString 类参考。如果您仍然不知道该怎么做,请发布一些代码并再次询问。 我想知道的是,您之前是如何以非编程方式删除它们的? 【参考方案1】:

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

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

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

【讨论】:

谢谢,很高兴能帮到你!【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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"

【讨论】:

以上是关于如何以编程方式从 NSString 中删除特定字符?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式从 MFC 工具栏中完全删除按钮

如何以编程方式将 NSData 转换为 NSString? [复制]

如何以编程方式从 Android 中删除 SQLite 数据库

急!如何批量删除数据库中以特定字符开头和结尾的字符串

如何在android中以编程方式从通知栏中删除通知?

如何从 php 数组中删除具有特定值的所有元素? (以尽可能最短的方式)[重复]