Objectvie-CのNSString処理テクニック:文字列の分割


一、ノード付き文字列、例えば@「

嫌いなノード

」私たちは真ん中の中国語だけがほしい.
処理方法1:

        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=(",",",",",",",",",",",",",",",",",",",",",",",",",",",",",",",",")2013-05-31 10:55:34.49 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;