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

问题描述 投票:0回答:4

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

NSString *myString = @"HelloWorld";

如何从中过滤出“ Hello”一词。或者,如果我想删除前五个字母,如何删除特定数量的字母(以字母开头)。

我正面临的另一个例子:

NSString *myString = @"Hello hi World"; 

类似地,我想删除“ Hello”及之后的空格。下次我可能要删除两个单词“ Hello hi”和其后的空格,以便仅保留“ World”。

[有人可以解释在NSString中删除字符的基础吗?我对Objective-C完全陌生,阅读类引用使我更加困惑。我只有12岁,所以不要因为不了解类引用而对我苛刻。

iphone objective-c ios xcode nsstring
4个回答
1
投票

在这种情况下,您需要一个NSMutableString:

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

NSMakeRange的解释:首先,您到达字符串的末尾并计算长度(11)。现在,您使用的是“ H”字符。现在,您删除以下六个字符。现在剩下“世界”。


0
投票

NSString有很多方法可以执行几乎所有操作,但是要考虑的一点是NSString是不可变的,因此所有这些方法都返回一个新字符串。如果这成为问题,则可以查看NSMutableString,其中包含用于操作当前字符串的方法。


0
投票

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


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"
© www.soinside.com 2019 - 2024. All rights reserved.