IOS中常见字符串的几种方法

来源:互联网 发布:混合视频矩阵 编辑:程序博客网 时间:2024/04/30 08:48

  1.把字符串分割成为数组

  NSString *str_1 = @"str1;str2,str3?str4";

    NSArray *array = [str_1 componentsSeparatedByCharactersInSet:[NSCharacterSet punctuationCharacterSet]];//把所有的符号分割开
            输出的数组:
                array    __NSArrayM *    @"4 objects"    0x08e9b3a0
                [0]    __NSCFString *    @"str1"    0x08e3d6a0
                [1]    __NSCFString *    @"str2"    0x08e39d00
                [2]    __NSCFString *    @"str3"    0x08e39d10
                [3]    __NSCFString *    @"str4"    0x08e2c2c0

    eg:
    NSString *a = [[NSString alloc] initWithString : @"冬瓜,西瓜,火龙果,大头,小狗" ];
    NSArray *b = [a componentsSeparatedByString:@“,”];//字符串的截取
    NSString *a3 = [b objectAtIndex:2];
    NSLog(@"\n  b的第三个东东是: %@", a3);
    [a release];

2.数组包含
  - (NSString *)substringWithRange:(NSRange)range;

     NSMakeRange是一个结构体类型,包含两个参数,位置和长度。表示字符串要传进来从哪里开始的位置和需要的长度。

    substringWithRange需要传进来NSRange类型,表示从哪里开始截取和长度,返回字符串类型。例如,        NSString *bankCardString = [respDict          objectForKey:kQFTrackData];
        NSRange bankRang = NSMakeRange(0, 3);
        NSString *bankStr1 = [bankCardString substringWithRange:bankRang];

substringToIndex表示从第一个字符串开始截取,到指定长度位置,但是不包括该指定位置位置字符串,例如        NSString *balanceDateString = [respDict objectForKey:kQFTime];
        NSString *ymdString = [balanceDateString substringToIndex:10];
        //再从已有字符串中截取
        //年
        NSString *yearStr = [ymdString substringToIndex:4];

substringFromIndex表示从指定位置开始截取字符串到最后,所截取位置包含该指定位置。

        NSRange monthRang = NSMakeRange(5, 2);
        NSString *monthStr = [ymdString substringWithRange:monthRang];
        //日
        NSString *dayStr = [ymdString substringFromIndex:8];


3.将字符串中某一字符串替换为给定的字符串,返回一个新的字符串的方法
 
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement;

如:
 
NSString *_date = @"2011.10.21";
NSString *dateStr = [_date stringByReplacingOccurrencesOfString:@"."withString:@"-"];
得到:dateStr = 2011-10-21


4.字符串数组排序

    NSArray *stringArray = [NSArray arrayWithObjects:@"abc 1", @"abc 21", @"abc 12",@"abc 13",@"abc 05",@"bc 05",@"c 05",@"zhang",@"wang",nil];
    /*
     #if NS_BLOCKS_AVAILABLE
     typedef NSComparisonResult (^NSComparator)(id obj1, id obj2);
     #endif
     */
    NSComparator sortBlock = ^(id string1, id string2)
    {
        return [string1 compare:string2];
    };
    NSArray *sortArray = [stringArray sortedArrayUsingComparator:sortBlock];
    NSLog(@"sortArray:%@", sortArray);

5.字符串的拼接法


    NSString *documentPath_1 = [NSString stringWithFormat:@"%@/Douments",Str];////字符串的拼接法1
    
    NSString *documentpath_2 = [NSHomeDirectory() stringByAppendingString:@"/Douments"];////字符串的拼接法2
    
    NSString *documentpath_3 = [Str stringByAppendingString:@"Douments"];
    

    NSLog(@"Document应用在沙盒中的路径是:%@",documentPath_1);

6.判断开始,判断结尾

 NSString *str = @"123";
    [str hasPrefix:@"1"]; //判断开始是否为“1”
    [str hasSuffix:@"3"]; //判断结尾是否为“1”
    
    [str rangeOfString:@"2"].location != NSNotFound;//判断字符串中是否有2,或者下面一种
    //[str rangeOfString:@"2"].length != 0;
    
    

7.对字符串进行特殊处理,过滤换行符以及空格


    name = [name stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

8.把特殊类型转化成字符串类型                                                                     
 
    NSString *str = @"123456";

    NSRange range = [str rangeOfString:@"12"];


 9.把特殊类型转化成字符串类型,应该输出{0,2},意思是从第0个开始,往后找2个字符


    NSLog(@"%@",NSStringFromRange(range));
1 0
原创粉丝点击