iOS中Foundation框架NSString基本用法总结

iOS开发过程中,从始至终都会和NSString打交道,在此总结一下NSString的常用的方法,在以后的学习过程中用到的方法也会继续添加

  NSString类是Foundation框架中得不可变字符串,当NSString创建完成后,字符串的内容不可更改,与之对应的是NSMutableString类

一、NSString对象的创建

  1.使用类方法(stringWithFormat:)进行字符串创建,此方法可以动态的构建字符串,并且能够给字符串传递参数(推荐)

1 NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"];
2  NSLog(@"%@", str);

  2.其他创建方法

复制代码
 1      // 把C字符串转成OC的字符串对象
 2         char* p = "I love beijing";
 3         NSString* testStr = [[NSString alloc] initWithFormat:@"%s",p ];
 4         NSLog(@"testString = %@",testStr);
 5         
 6         // 把OC字符串对象转成C字符串
 7         const char* newP = [testStr UTF8String];
 8         NSLog(@"newp = %s",newP);
 9         
10         // 与格式控制字符串构建对象的实例方法对应的类方法
11         // 使用(Foundation框架里的)类方法创建的对象,由自动释放池管理内存
12         NSString* str2 = [NSString stringWithFormat:@"This is a OC sting %d",109];
13         NSLog(@"str2 = %@",str2);
14         //=============================================
15         // 使用一个现有的字符串对象构建一个新的字符串对象
16         NSString* str = @"I'm a oc string";
17         NSString* str3 = [[NSString alloc] initWithString:str];
18         NSLog(@"str3 = %@",str3);
19         // 与之对应的类方法
20         NSString* str4 = [NSString stringWithString:str];
21         NSLog(@"str4 = %@",str4);
22         
23         //==============================================
24         // 使用一个C字符串构建一个OC的字符串对象
25         NSString* str5 = [[NSString alloc] initWithUTF8String:"This is a c String"];
26         NSLog(@"str5 = %@",str5);
27         // 与之对应的类方法
28         NSString* str6 = [NSString stringWithUTF8String:"This is a c String"];
29         NSLog(@"str6 = %@",str6);
30         
31         //==============================================
32         // 使用文件内容构建一个字符串对象
33         
34         NSString* filePath = @"/Users/qianfeng/Desktop/test.txt";
35         /* 
36          第一个参数:读取的文件的路径
37          第二个参数:指定编码集为NSUTF8String
38          第三个参数:用于存放读取文件过程中的错误信息
39          */
40         NSError* error = nil;
41         NSString* str7 = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
42         NSLog(@"str7 = %@",str7);
复制代码

二、NSString常用操作

复制代码
 1  //获取字符串长度(length)
 2         NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"];
 3         NSUInteger lenth = [str length];
 4         NSLog(@"%ld", lenth);
 5         NSLog(@"%@", str);
 6         //NSRange
 7         /*
 8          NSRange在Foundation框架中定义如下
 9          typedef struct _NSRange {
10          NSUInteger location; //表示位置
11          NSUInteger length; //长度
12          } NSRange;
13          */
14         NSString* str2 = @"忙碌工作之余是否有运动?";
15         NSString* subString = @"忙碌";
16         //查找子串(从0开始)
17         NSRange range = [str2 rangeOfString: subString];
18         //打印框架内结构体的方法
19         NSLog(@"%@", NSStringFromRange(range));
20         //使用框架创建range
21         NSRange newRange = NSMakeRange(5, 3);
22         NSString* newTemp = [str2 substringWithRange: newRange];
23         NSLog(@"%@", newTemp);
24         //判断是否在父串中找到子串
25         if (range.location == NSNotFound) {
26             NSLog(@"Can't fount");
27         }else{
28             NSLog(@"Got it!");
29         }
30         //字符串比较(大小)
31         NSString* strA = @"chengDu";
32         NSString* strB = @"chongQing";
33         //compare:方法的返回值类型为NSComparisonResult(枚举值),其中
34         //NSOrderedSame表示相等 NSOrderedAscending表示升序(小于)
35         //NSOrderedDescending 表示降序(大于)
36         if ([strA compare: strB] == NSOrderedSame) {
37             NSLog(@"相等");
38         }else if([strA compare: strB] == NSOrderedAscending){
39             NSLog(@"小于");
40         }else{
41             NSLog(@"大于");
42         }
43         //字符串比较(是否相等)
44         BOOL isEqule = [strA isEqualToString: strB];
45         NSLog(@"The result is : %d", isEqule);
46         
47         //判断字符串前后缀
48         NSString *fileString = @"/Users/student/DeskTop/file.txt";
49         //判断前缀(hasPrefix:)方法
50         BOOL isPrefix = [fileString hasPrefix:@"/Users"];
51         //判断后缀 (hasSuffix:)方法
52         BOOL isSuffix = [fileString hasSuffix: @".txt"];
53         NSLog(@"isPrefix = %d, isSuffix = %d", isPrefix, isSuffix);
54         //字符串转换为数字
55         /*
56          框架提供的字符串转换的方法如下:
57          - (double)doubleValue;
58          - (float)floatValue;
59          - (int)intValue;
60          - (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0);
61          - (long long)longLongValue NS_AVAILABLE(10_5, 2_0);
62          - (BOOL)boolValue NS_AVAILABLE(10_5, 2_0);
63          */
64         NSString* strToNum = @"12345.234";
65         int result = [strToNum intValue];
66         NSLog(@"result = %d", result);
复制代码
NSString* str = [NSString stringWithFormat:@"I love programing! You, come here"];
        //字符串对象的大小写转换
        //转换为大写
        NSString* upStr = [str uppercaseString];
        NSLog(@"str = %@", str);
        NSLog(@"upStr = %@", upStr);
        //转换为小写
        NSString* lowerStr = [str lowercaseString];
        NSLog(@"lowerStr = %@", lowerStr);
        //转换成首字母大写
        NSString* newStr = [str capitalizedString];
        NSLog(@"newStr = %@", newStr);
        
        //字符串提取
        //指定位置到结尾:
        NSString* subStr = [str substringFromIndex:7];
        NSLog(@"subStr = %@", subStr);
        //从指定位置提取指定长度(通过 NSRange)
        subStr = [str substringWithRange: NSMakeRange(7, 7)];
         NSLog(@"subStr = %@", subStr);
        //开头到指定位置
        subStr = [str substringToIndex:6];
         NSLog(@"subStr = %@", subStr);
        
        //字符串切割(componentsSeparatedByString:)方法
        //此方法根据传递的字符串进行分割,并将分割的结果以数组返回
        NSArray* strArr = [str componentsSeparatedByString:@" "];
        for (id str in strArr) {
            NSLog(@"%@", str);
        }
        //拼接数组中得字符串(按指定字符串)
        NSString* myStr = [strArr componentsJoinedByString:@"__"];
        NSLog(@"mystr = %@", myStr);
        //根据传递进来的NSCharacterSet集合进行分割(示例中包含逗号“,”和空格“ ”)
        strArr = [str componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@", "]];
        for (id str in strArr) {
            NSLog(@"%@", str);
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值