码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员——OC常用类NSString/NSMutableString《Foundation框架中类》

时间:2015-04-12 09:27:24      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:oc基本语法   objective-c   nsstring   

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

NSString/NSMutableStringOC字符串处理核心类

        NSString/NSMutableString是Foundation框架中的类,是Objective-C 字符串处理核心类。这两个类最大的区别:NSString 创建赋值以后,该类字符串除了重新被赋值,其的内容与长度不能动态的更改。NSMutableString 创建赋值以后可以动态更改其内容与长度。其中,NSMutableString类继承了NSString类(在NSString的头文件(NSString.h文件)中可以看到:@interface NSMutableString : NSString这句代码)。所以NSMutableString类可以使用NSString中的所有方法。

实例代码:

NSString *str1 =@"the first way to create string";//创建NSString字符串
NSMutableString *mstr = [[NSMutableString alloc]initWithString:@"The first way to create "];//创建NSMutableString字符串
<span style="font-size:18px;color:#ff6666;">//将str1字符串的首字母大写,重新赋值给str1(不能在原str上直接修改)</span>
str1 =[str1 capitalizedString];//重新赋值可以改变NSString的内容,不赋值不可改变其内容与长度
[mstr appendString:@"mutablestring"];<span style="font-size:18px;color:#ff6666;">//在原mstr后面追加内容,改变了mstr的内容与长度</span>

1.NSString创建

创建方式:

<span style="font-size:18px;color:#ff6666;background-color: rgb(255, 255, 255);">一、直接赋值</span>
NSString *str1 =@"the first way to create string";
<span style="font-size:18px;color:#ff6666;">二、常用的对象创建方法</span>
NSString *str2 = [[NSString alloc]initWithString:@"The second way to create string"];
<span style="font-size:18px;color:#ff6666;">三、拼接法创建</span>
NSString *str3 = [[NSString alloc]initWithFormat:@"第%d种创建方式:%d年%d月%d日",3,2015,4,11];
<span style="font-size:18px;color:#ff6666;">四、将C语言字符串转换为OC字符的创建方式</span>
NSString *str4 = [[NSString alloc]initWithUTF8String:"这是const char *(C语言字符串)转换为NSString的方式创建字符串"];
<span style="font-size:18px;color:#ff6666;">五、读取本地文件的创建方式,读取/Users/Mac/Desktop/IOS_study路径下的a.txt文件内容,采用UTF8编码</span>
NSString *str5 = [[NSString alloc]initWithContentsOfFile:@"/Users/Mac/Desktop/IOS_study/a.txt" encoding:NSUTF8StringEncoding error:nil];
<span style="font-size:18px;color:#ff6666;">六、读取资源的创建方式</span><span style="color: rgb(255, 102, 102); font-size: 18px; font-family: Arial, Helvetica, sans-serif;">,读取/Users/Mac/Desktop/IOS_study路径下的b.txt文件内容,采用UTF8编码</span><span style="font-size:18px;color:#ff6666;">
</span>NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/Mac/Desktop/IOS_study/b.txt"];
NSString *str6 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];

实例示范:

//  Created by Mac on 15/4/11.
//  Copyright (c) 2015年 Hua_san. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //一、直接赋值
        NSString *str1 =@"the first way to create string";
        //二、常用的对象创建方法
        NSString *str2 = [[NSString alloc]initWithString:@"The second way to create string"];
        //三、拼接法创建
        NSString *str3 = [[NSString alloc]initWithFormat:@"第%d种创建方式:%d年%d月%d日",3,2015,4,11];
        //四、将C语言字符串转换为OC字符的创建方式
        NSString *str4 = [[NSString alloc]initWithUTF8String:"这是const char *(C语言字符串)转换为NSString的方式创建字符串"];
        //五、读取本地文件的创建方式,读取/Users/Mac/Desktop/IOS_study路径下的a.txt文件内容,采用UTF8编码
        NSString *str5 = [[NSString alloc]initWithContentsOfFile:@"/Users/Mac/Desktop/IOS_study/a.txt" encoding:NSUTF8StringEncoding error:nil];
        //路径/Users/Mac/Desktop/IOS_study下的a.txt内容为: 这是第5种创建方式,通过读取文件创建NSString
        
        //六、读取资源的创建方式
        /**
         1.URL:资源路径
         2.表示方法:协议头://+路径
         3.常见协议头:file(获取本地资源),ftp(获取ftp服务器上的资源),http(获取http服务器上的资源)
         4.获取百度图片:http://image.baidu.com..../xxx.png
         5.本示例采用UTF8编码,读取本地文件.URL资源路径采用方法2拼接得到:file:///Users/Mac/Desktop/IOS_study/b.txt
         6.路径/Users/Mac/Desktop/IOS_study下b.txt存的内容:这是第六种创建方式,通过URL资源读取本地文件,协议头为:file://
         */
        NSURL *url = [[NSURL alloc]initWithString:@"file:///Users/Mac/Desktop/IOS_study/b.txt"];
        NSString *str6 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
        
        NSLog(@"%@",str1);
        NSLog(@"%@",str2);
        NSLog(@"%@",str3);
        NSLog(@"%@",str4);
        NSLog(@"%@",str5);
        NSLog(@"%@",str6);
    }
    return 0;
}

输出结果:

2015-04-11 18:53:17.239 02-NSString类[1360:64404] the first way to create string
2015-04-11 18:53:17.240 02-NSString类[1360:64404] The second way to create string
2015-04-11 18:53:17.241 02-NSString类[1360:64404] 第3种创建方式:2015年4月11日
2015-04-11 18:53:17.241 02-NSString类[1360:64404] 这是const char *(C语言字符串)转换为NSString的方式创建字符串
2015-04-11 18:53:17.241 02-NSString类[1360:64404] 这是第5种创建方式,通过读取文件创建NSString
2015-04-11 18:53:17.241 02-NSString类[1360:64404] 这是第六种创建方式,通过URL资源读取本地文件,协议头为:file://


2.NSString截取

实例示范:

//  Created by Mac on 15/4/11.
//  Copyright (c) 2015年 Hua_san. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str1 =@"the first way to create string";
        <span style="font-size:18px;color:#ff6666;">//获取字符串的长度</span>
        NSInteger lenth = [str1 length];
        <span style="font-size:18px;color:#ff6666;">//根据索引值,获取字符</span>
        unichar ch = [str1 characterAtIndex:2];//索引值从0开始计算
        <span style="font-size:18px;color:#ff6666;">//截取字符串尾部</span>
        NSString *end = [str1 substringFromIndex:17];//索引值从0开始计算
        <span style="font-size:18px;color:#ff6666;">//截取首部</span>
        NSString *first = [str1 substringToIndex:3];
       <span style="font-size:18px;"> <span style="color:#ff6666;">//获取字符串“to”在str1字符串中的范围</span></span>
        NSRange range = [str1 rangeOfString:@"to"];
        <span style="font-size:18px;color:#ff6666;">//按range的范围,从str1中截取字符串</span>
        NSString *to_str = [str1 substringWithRange:range];
        NSLog(@"%@",str1);
        NSLog(@"字符串%@的长度为:%ld",str1,lenth);
        NSLog(@"第3个字符为:%c",ch);
        NSLog(@"从字符串%@的第18个字符开始,截取其尾部得:%@",str1,end);
        NSLog(@"对字符串%@,截取前3个字符得:%@",str1,first);
        NSLog(@"\"to\"字符串在%@中的初始位置:%ld,占用长度为:%ld",str1,range.location,range.length);
        NSLog(@"对字符串%@,截取范围(初始位置:%ld,长度:%ld)得到字符串:%@",str1,range.location,range.length,to_str);
   }
    return 0;
}

输出结果:

2015-04-11 19:31:20.065 02-NSString类[1641:77263] the first way to create string
2015-04-11 19:31:20.066 02-NSString类[1641:77263] 字符串the first way to create string的长度为:30
2015-04-11 19:31:20.066 02-NSString类[1641:77263] 第3个字符为:e
2015-04-11 19:31:20.067 02-NSString类[1641:77263] 从字符串the first way to create string的第18个字符开始,截取其尾部得:create string
2015-04-11 19:31:20.067 02-NSString类[1641:77263] 对字符串the first way to create string,截取前3个字符得:the
2015-04-11 19:31:20.067 02-NSString类[1641:77263] "to"字符串在the first way to create string中的初始位置:14,占用长度为:2
2015-04-11 19:31:20.067 02-NSString类[1641:77263] 对字符串the first way to create string,截取范围(初始位置:14,长度:2)得到字符串:to


3.NSString判断比较

实例示范:

<span style="font-size:12px;">//  Created by Mac on 15/4/11.
//  Copyright (c) 2015年 Hua_san. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str = @"the first way to create string";
        NSString *str1 = @"the";
    </span><span style="font-size:18px;color:#ff6666;">/*1.判断字符串str是否为空</span><span style="font-size:12px;">
        str==nil
        str.length ==0
     */
    </span><span style="font-size:18px;color:#ff6666;">//2.判断字符串str是否以str1开头</span><span style="font-size:12px;">
        BOOL preFix = [str hasPrefix:str1];
    </span><span style="font-size:18px;color:#ff6666;">//3.判断字符串str是否以str1结尾</span><span style="font-size:12px;">
        BOOL sufFix = [str hasSuffix:str1];
    </span><span style="font-size:18px;color:#ff6666;">//4.判断两个字符串是否相等</span><span style="font-size:12px;">
        BOOL isEqual = [str isEqualToString:str1];
        
        NSLog(@"\npreFix:%d\nsufFix:%d\nisEqual:%d",preFix,sufFix,isEqual);

   }
    return 0;
}</span>

输出结果:

<span style="font-size:12px;">2015-04-11 22:03:00.326 02-NSString类[2069:115725] 
preFix:1
sufFix:0
isEqual:0</span>

4.NSString写入文件

实例示范:

<span style="font-size:12px;">//  Created by Mac on 15/4/11.
//  Copyright (c) 2015年 Hua_san. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str = @"The first way to create string";
        NSString *str1 = @"\n这是拼接上去的字符串";
        </span><span style="font-size:18px;color:#ff6666;">//将str字符串写入本地文件中。</span><span style="font-size:12px;">
        BOOL isWiter = [str writeToFile:@"/Users/Mac/Desktop/IOS_study/c.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
        if(isWiter)
            NSLog(@"第一次写入文件成功!");
        else
            NSLog(@"第一次写入文件失败");
        //此处操作文件路径为/Users/Mac/Desktop/IOS_study/c.txt,若文件不存在,则重新创建,若存在直接写人,写入文件将先清空文件中的内容。<span style="color:#ff6666;">atomically:yes是相当打开原子操作</span>(若写入中断,则全部不写入文件)。编码方式:使用UTF-8进行编码。
        
        </span><span style="font-size:18px;color:#ff6666;">//读取文件</span><span style="font-size:12px;">
        NSString *readString = [[NSString alloc]initWithContentsOfFile:@"/Users/Mac/Desktop/IOS_study/c.txt" encoding:NSUTF8StringEncoding error:nil];
        </span><span style="font-size:18px;color:#ff6666;">//将str1拼接在readString(读出来的字符串)的末尾</span><span style="font-size:12px;">
        str1 = [readString stringByAppendingString:str1];
        </span><span style="font-size:18px;color:#ff6666;">//写入文件</span><span style="font-size:12px;">
        isWiter = [str1 writeToFile:@"/Users/Mac/Desktop/IOS_study/c.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
        if(isWiter)
            NSLog(@"第二次写入文件成功!");
        else
            NSLog(@"第二次写入文件失败");
        
   }
    return 0;
}</span>

输出结果:

<span style="font-size:12px;">2015-04-11 22:42:57.792 02-NSString类[2341:128870] 第一次写入文件成功!
2015-04-11 22:42:57.794 02-NSString类[2341:128870] 第二次写入文件成功!</span>
本地文件c.txt (刚刚写入的文件)内容如下:

The first way to create string
这是拼接上去的字符串


5.NSMutableString可变字符串的常用操作

实例示范:

<span style="font-size:12px;">//  Created by Mac on 15/4/11.
//  Copyright (c) 2015年 Hua_san. All rights reserved.
//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       </span><span style="font-size:18px;"> <span style="color:#ff6666;">//创建可变字符串</span></span><span style="font-size:12px;">
        NSMutableString *str=[[NSMutableString alloc]initWithString:@"My name is Object-C"];
        NSLog(@"新创建的字符串str:%@",str);
        </span><span style="font-size:18px;color:#ff6666;">//在其末尾增加字符串,其长度改变,其内容也改变</span><span style="font-size:12px;">
        [str appendString:@" JAVA C++"];
        NSLog(@"增加内容后的字符串str:%@",str);
        </span><span style="font-size:18px;color:#ff6666;">//查找Object-C的在str字符串中的范围</span><span style="font-size:12px;">
        NSRange range =[str rangeOfString:@"Object-C"];
        </span><span style="font-size:18px;color:#ff6666;">//删除Object-C</span><span style="font-size:12px;">
        [str deleteCharactersInRange:range];
        NSLog(@"删除Object-C后的字符串str:%@",str);
        
   }
    return 0;
}</span>

输出结果:

<span style="font-size:12px;">2015-04-11 23:03:56.679 02-NSString类[2490:136327] 新创建的字符串str:My name is Object-C
2015-04-11 23:03:56.680 02-NSString类[2490:136327] 增加内容后的字符串str:My name is Object-C JAVA C++
2015-04-11 23:03:56.680 02-NSString类[2490:136327] 删除Object-C后的字符串str:My name is  JAVA C++</span>

黑马程序员——OC常用类NSString/NSMutableString《Foundation框架中类》

标签:oc基本语法   objective-c   nsstring   

原文地址:http://blog.csdn.net/h302849781/article/details/44996767

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!