标签:oc基本语法 objective-c nsstring
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
NSString/NSMutableString:OC字符串处理核心类
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>
创建方式:
<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://
实例示范:
// 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