当前位置:  开发笔记 > 编程语言 > 正文

Objective-C中的字符串替换

如何解决《Objective-C中的字符串替换》经验,为你挑选了4个好方法。

替换字符的最佳方法是使用Objective-C for iPhone SDK中的字符串?



1> epatel..:

你可以使用这个方法

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target 
                                        withString:(NSString *)replacement

...获取一个替换了子字符串的新字符串(参见NSString其他文档)

使用示例

NSString *str = @"This is a string";

str = [str stringByReplacingOccurrencesOfString:@"string"
                                     withString:@"duck"];


它不会改变.str现在包含一个全新的字符串.stringByReplacingOccurencesOfString不会改变字符串.它只返回一个新字符串.
我认为拥有NSString和NSMutableString子类是因为NSString的一个实例是*不可更改的*.虽然 - 就像任何理智的人一样,我宁愿每天都带着鸭子而不是字符串 - 事实上,你只是覆盖了`str`的​​内容,这让我大吃一惊.

2> mipadi..:

NSString对象是不可变的(它们不能被更改),但是有一个可变的子类NSMutableString,它为您提供了几种替换字符串中字符的方法.这可能是你最好的选择.



3> 小智..:

如果您想要多个字符串替换:

NSString *s = @"foo/bar:baz.foo";
NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"/:."];
s = [[s componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
NSLog(@"%@", s); // => foobarbazfoo



4> Marlon Ruiz..:

它还使用stringByReplacingCharactersInRange:withString替换字符串:

for (int i = 0; i < card.length - 4; i++) {

    if (![[card substringWithRange:NSMakeRange(i, 1)] isEqual:@" "]) {

        NSRange range = NSMakeRange(i, 1);
        card = [card stringByReplacingCharactersInRange:range withString:@"*"];

    }

} //out: **** **** **** 1234

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有