zoukankan      html  css  js  c++  java
  • NSString 处理技巧:分割字符串

     

    摘要 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 = (
        "",
        "",
        "",
        "U8ba8U538cU7684U8282U70b9",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        "",
        ""
    )
    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(@"
    array = %@",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;
  • 相关阅读:
    [bzoj1911][Apio2010特别行动队] (动态规划+斜率优化)
    [bzoj1597][usaco2008 mar]土地购买 (动态规划+斜率优化)
    [bzoj1901][zoj2112][Dynamic Rankings] (整体二分+树状数组 or 动态开点线段树 or 主席树)
    整体二分初步
    bzoj[3238][ahoi差异]
    概率dp学习
    poj[2104]K-th Number
    hdu[1711]number sequence
    hdu[2222]keywords search
    poj[1187][Noi 01]陨石的秘密
  • 原文地址:https://www.cnblogs.com/LiLihongqiang/p/5557424.html
Copyright © 2011-2022 走看看