NSString

 

一、创建字符串。

void stringCreate() {

    

    NSString *str = @"String";

    NSLog(@"%@",str);

    

    NSString *str1 = [[[NSString alloc] init] autorelease];

    str1 = @"String1";

    NSLog(@"%@",str1);

    

    NSString *str2 = [[NSString alloc] initWithString:@"String2" ];

    NSLog(@"%@",str2);

    [str2 release];

    

    NSString *str3 = [[NSString alloc] initWithUTF8String:"String3"];

    NSLog(@"%@",str3);

    [str3 release];

    

    //静态方法不需要管理内存

    str3 = [NSString stringWithString:@"String3"];

    NSLog(@"%@",str3);

    

    //向字符串中传入参数。

    NSString *str4 = [[NSString alloc] initWithFormat:@"my age is %i and height is %.2f",19, 1.55f];

    NSLog(@"str4:%@",str4);

    [str4 release];

    

    str4 = [NSString stringWithFormat:@"my age is %i and height is %.2f",19, 1.55f];

     NSLog(@"str4:%@",str4);

    

    str4 = [NSString stringWithUTF8String:"String4"];

    NSLog(@"%@",str4);

  }

 

二、#pragma mark 大小写处理

 

void caseTest() {

    NSString *str = @"LanPing";

    //转成大写。

    NSLog(@"大写:%@",[str uppercaseString]);    

    //转成小写。    

    NSLog(@"小写:%@",[str lowercaseString]);

    //首字母变大写。    

    NSLog(@"首字母变大写:%@", [@"gamework" capitalizedString]);

 }

 

 

三、#pragma mark 字符串的比较

 

void compare() {

    

    //isEqualToString比较两个字符串的内容是否相同

    

    BOOL result = [@"abc" isEqualToString:@"abc"];

    NSLog(@"%i",result);  

    //NSOrderedSame 两个字符串内容相同

    //NSOrderedAscending 右边的字符串比左边大

    //NSOrderedDescending 左边的字符串比右边大    

    NSComparisonResult result2 = [@"abc" compare:@"Abc"];

    if (result2 == NSOrderedSame) {

        NSLog(@"两个字符串的内容相同");

    }

    else if (result2 == NSOrderedAscending) {

        NSLog(@"右边>左边");

    }

    else if (result2 == NSOrderedDescending) {

        NSLog(@"右边<左边");

    }

    

    //忽略大小写进行比较,用法与compare相同。    

    NSComparisonResult result3 = [@"abc" caseInsensitiveCompare:@"Abc"];

    if (result3 == NSOrderedSame) {

        NSLog(@"两个字符串的内容相同");

    }

    else if (result3 == NSOrderedAscending) {

        NSLog(@"右边>左边");

    }

    else if (result3 == NSOrderedDescending) {

        NSLog(@"右边<左边");

    }    

}

 

四、#pragma mark 字符串的搜索。

 

void search() {

    NSString *str = @"12345673458.txt";

    

    //是否以某字符开头。

    NSLog(@"是否以12开头: %i",[str hasPrefix:@"12"]);

    

    //是否以某字符结尾。

    NSLog(@"是否以txt结尾:%i",[str hasSuffix:@"txt"]);

    

    //在字符串中搜索一个子字符串所在位置。

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

    if (range.location == NSNotFound) {

        NSLog(@"不能找到该字符串");

    }

    else {

        NSLog(@"找到的范围是:%@",NSStringFromRange(range));

    }

    

    //从尾部开始搜索。

    range = [str rangeOfString:@"345" options:NSBackwardsSearch];

    NSLog(@"%@",NSStringFromRange(range));

    

    //从指定位置开始搜索。

    NSRange range1 = NSMakeRange(6, 7);

 

    range = [str rangeOfString:@"345" options:NSBackwardsSearch range:range1];

    NSLog(@"%@",NSStringFromRange(range));

    

}

 

五、#pragma mark 字符串的截取。

 

void subString() {

    NSString *str = @"123456";

    

    //从索引3开始截取字符串。

    NSLog(@"%@", [str substringFromIndex:3]);

    

    //从头部开始截取到索引3之前(不包括3)

    NSLog(@"%@", [str substringToIndex:3]);

    

    //指定范围进行截取。

    NSRange range = NSMakeRange(2, 3);

    NSLog(@"%@", [str substringWithRange:range]);

    

    //以某个字符分隔截取字符串。

    NSString *str1 = @"1,2,3,4,5-a-b-c-d-e";

    NSArray *array = [str1 componentsSeparatedByString:@","];

    NSLog(@"%@",array);

    //从数组里取元素

    for (int i =0; i < array.count; i++) {

        NSLog(@"%@", [array objectAtIndex:i]);

    }

}

 

六、#pragma mark  与路径相关。

void pathTest() {

    NSMutableArray *components = [NSMutableArray array];

    [components addObject:@"Users"];

    [components addObject:@"jszx"];

    [components addObject:@"Desktop"];

    //将数组中的所有字符串拼接成一个路径。

    NSString *path = [NSString pathWithComponents:components];

    NSLog(@"%@",path);

    //将路径分解成一个数组

    NSArray *cmps = [path pathComponents];

    NSLog(@"%@",cmps);

    

    //判断是否为绝对路径。如果以/开头就是绝对路径。

    path = @"/users/jszx/test";

    NSLog(@"%i", [path isAbsolutePath]);

    //返回最后一个目录。

    NSLog(@"最后一个目录:%@", [path lastPathComponent]);    

    //返回删除最后一个目录的字符串。

    NSLog(@"%@", [path stringByDeletingLastPathComponent]);    

    //返回在最后拼接一个目录的字符串。

    NSLog(@"%@", [path stringByAppendingPathComponent:@"abc"]); 

}

 

 

七、#pragma mark 拓展名处理。

 

void extension() {

    NSString *str = @"/Users/jszx/text.txt";

    NSLog(@"拓展名为:%@", [str pathExtension]);

    

    //返回删掉拓展名后的字符串。

    NSLog(@"%@", [str stringByDeletingPathExtension]);

    

    //返回拼接一个拓展名后的字符串。

    NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]);

}

 

 

八、#pragma mark 字符串转化。

 

void other() {

    //将字符串转化为int.

    NSString *str = @"123";

    int a = [str intValue];

    NSLog(@"%i", a);

    

    //计算字数,不是字符数。

    NSLog(@"%zi", [@"我是字符串" length]);

    

    //取出对应的字符。

    unichar c = [@"abc" characterAtIndex:0];

    NSLog(@"%c", c);

    

    //返回c语言中的字符。

    const char *s = [@"abc" UTF8String];

    NSLog(@"%s",s); 

}

 

posted @ 2014-12-24 09:33  unity_lan  阅读(308)  评论(0)    收藏  举报