如何解决将char附加到现有字符串Objective-C
| 我正在尝试动态添加和修改Nsstring。我想知道几件事: 如何修改已定义的Nsstring中的特定字符? 如何在已定义的Nsstring中添加字符? 例如,如果我定义了以下内容:Nsstring *word = [[Nsstring alloc] initWithString:@\"Hello\"];
如何将字母“ e”替换为“ a”,以及如何向字符串本身添加另一个字符?解决方法
神经使用
NSString
进行字符串操作,使用NSMutableString
。
NSMutableString是NSString的子类,用于此目的。
从Apple文档中:
NSString
类为管理不可变字符串的对象声明了编程接口。 (不可变字符串是在创建时定义的文本字符串,以后不能更改。.1表示为表示Unicode字符的数组(换句话说,是文本字符串)。
NSString的可变子类是NSMutableString
。
NSMutableString *word = [[NSMutableString alloc] initWithString:@\"Hello\"];
//Replace a character
NSString* word2 = [word stringByReplacingOccurrencesOfString:@\"e\" withString:@\"a\"];
[word release];
word = nil ;
word = [[NSMutableString alloc] initWithString:word2 ];
//Append a Character
[word appendString:@\"a\"];
还有更多的字符串操作功能,有关NSMutableString的信息,请参阅Apple文档。
编辑:
您可以先使用rangeOfString
来获取字符串的范围(在您的情况下为@ \“ e \”)。
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask
然后检查NSRange对象是否有效,然后在NSMutableString
上使用replaceCharactersInRange
函数用字符串替换字符集。
- (void)replaceCharactersInRange:(NSRange)aRange withString:(NSString *)aString
,NSString实例是不可变的。您可以通过添加或替换其他字符来创建新的NSString实例,如下所示:
NSString *foo = @\"Foo\";
NSString *bar = @\"Bar\";
NSString *foobar = [foo stringByAppendingString:bar];
NSString *baz = [bar stringByReplacingOccurrencesOfString:@\"r\" withString:@\"z\"];
如果确实需要直接修改实例,则可以使用NSMutableString而不是NSString。
如果您确实想使用原始字符,则NSString有两个可以接受字符数组的初始化器(例如initWithCharacters:length:
)。,首先要注意的是:
如果要修改字符串,则必须使用NSMutableString
。 NSString不能被修改,因此它们具有可修改的同伴。
然后,NSMutableString有两个对您有用的方法:
replaceCharactersInRange:withString
deleteCharactersInRange:
(很抱歉没有直接链接到那些方法的链接。如果总是以新用户的身份对我施加限制,则使用StackOverflow ...)。,只需添加,NSMutableString
就有一个称为appendFormat
的方法,在添加内容时会很有帮助:
[str appendFormat:@\"%@-%@-%@\",@\"1\",@\"2\",@\"3\"]
将\“ 1-2-3 \”附加到str
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。