微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将char附加到现有字符串Objective-C

如何解决将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 举报,一经查实,本站将立刻删除。