• 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;
  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/LiLihongqiang/p/5557424.html
Copyright © 2020-2023  润新知