码迷,mamicode.com
首页 > 其他好文 > 详细

NSString 处理技巧:分割字符串

时间:2016-06-03 21:24:10      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

 

摘要 string类型是objective-c中用的最多的类型之一,有时会出现字符串中有我们不想要的字符。 如 "hello world"中的空格,或是"hello/world"中的‘/‘,亦或是"你好A你好"中的‘A‘。这些都可以通过NSString中的方法来解决。

一、带节点的字符串,如@"<p>讨厌的节点<br/></p>"我们只想要中间的中文

处理方法一:

 

NSString *string1 = @"<p>讨厌的节点<br/></p>";
        
        /*此处将不想要的字符全部放进characterSet1中,不需另外加逗号或空格之类的,除非字符串中有你想要去除的空格,此处< p /等都是单独存在,不作为整个字符*/
        
        NSCharacterSet *characterSet1 = [NSCharacterSet characterSetWithCharactersInString:@"<p/brh>"];
        
        // 将string1按characterSet1中的元素分割成数组

        NSArray *array1 = [string1 componentsSeparatedByCharactersInSet:characterSet1];
        
        NSLog(@"array = %@",array1);
        
        for(NSString *string1 in array1)
        {
            if ([string1 length]>0) {
                
                // 此处string即为中文字符串

                NSLog(@"string = %@",string1);
            }
        }

打印结果: 2013-05-31 10:55:34.017 string[17634:303] 

array = (
    "",
    "",
    "",
    "\U8ba8\U538c\U7684\U8282\U70b9",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    ""
)
2013-05-31 10:55:34.049 string[17634:303] 
string = 讨厌的节点

 

二、带空格的字符串,如

@"hello world"去掉空格

 

NSString *string2 = @"hello world";
        
        /*处理空格*/
        
        NSCharacterSet *characterSet2 = [NSCharacterSet whitespaceCharacterSet];
        
        // 将string1按characterSet1中的元素分割成数组
        NSArray *array2 = [string2 componentsSeparatedByCharactersInSet:characterSet2];
        
        NSLog(@"\narray = %@",array2);
        
        // 用来存放处理后的字符串
        NSMutableString *newString1 = [NSMutableString string];
        
        for(NSString *string in array1)
        {
            [newString1 appendString:string];
        }
        NSLog(@"newString = %@", newString1);

打印结果:

2013-05-31 11:02:49.656 string[17889:303] 
array = (
    hello,
    world
)
2013-05-31 11:02:49.657 string[17889:303] newString = helloworld

PS:处理字母等其他元素只需将NSCharacterSet的值改变即可。

 

 

+ (id)controlCharacterSet;

+ (id)whitespaceCharacterSet;

+ (id)whitespaceAndNewlineCharacterSet;

+ (id)decimalDigitCharacterSet;

+ (id)letterCharacterSet;

+ (id)lowercaseLetterCharacterSet;

+ (id)uppercaseLetterCharacterSet;

+ (id)nonBaseCharacterSet;

+ (id)alphanumericCharacterSet;

+ (id)decomposableCharacterSet;

+ (id)illegalCharacterSet;

+ (id)punctuationCharacterSet;

+ (id)capitalizedLetterCharacterSet;

+ (id)symbolCharacterSet;

+ (id)newlineCharacterSet NS_AVAILABLE(10_5, 2_0);

+ (id)characterSetWithRange:(NSRange)aRange;

+ (id)characterSetWithCharactersInString:(NSString *)aString;

+ (id)characterSetWithBitmapRepresentation:(NSData *)data;

+ (id)characterSetWithContentsOfFile:(NSString *)fName;

NSString 处理技巧:分割字符串

标签:

原文地址:http://www.cnblogs.com/LiLihongqiang/p/5557424.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!