NSString 和 NSMutableString
来源:互联网 发布:java cs开发 编辑:程序博客网 时间:2024/05/22 07:05
1.需要理解的知识
1.1不可变字符串NSString
1.1.1 OC字符串和C字符串的不同
1,OC中的字符串为对象,C语言中的字符串为字符指针
2,OC中的字符串中NSString ,C语言中的字符串中Char *
3, OC中的字符串为对象类型,可以调用相关方法
C语言的字符串不是对象,所以操作比较麻烦
1.1.2 OC字符串的创建
方法1:
//创建字符串对象@"abc"
NSString *str = @"abc";
//打印字符串对象用%@,与%i %d %f %lf均属于格式输出占位符号
//%@ 代表对象类型,
//Student *stu = [[Student alloc] init];
//NSLog(@"%@",stu);
NSLog(@"%@",str);
方法2:
1.1.3 OC字符串的常见操作
1.1.3.1.获取字符串长度
1.1.3.2.获取字符
1.1.3.3.判断字符串相等
1.1.3.4.字符串比较
1.1.3.5.字符串查找
1.1.3.6.判断前后缀
1.1.3.7.数字串转化
1.1.3.8.大小写转换
1.1.3.9.字符串提取
1.2可变字符串NSMutableString
1.2.1什么是可变字符串
可变字符串对象的内容可以改变
1.2.2NSMutableString 和NSString 的关系
NSMutableString(子类)继承于NSString(父类),NSString类的所有方法NSMutableString都可以使用
//创建可变字符串对象
NSMutableString *str = [[NSMutableStringalloc] init];
//获得可变字符串的长度
NSUInteger i = [str length];
//将字符串改为大写
NSString *uperString = [str uppercaseString];
//在主字符串中查找子字符串,如果有,返回子字符串下标和子字符串在主字符串占用的长度
//如果没有子字符串,range。location = NSNotFound,range.length = 0;
NSRange range = [str rangeOfString:@"ab"];
1.2.3可变字符串常见操作
1.2.3.1增加字符串
1.2.3.2删除字符串
1.2.3.3修改字符串
2.需要记住的知识
2.1 NSString
2.1.1方法
2.1.1.1常用创建方法
//实例化方法创建字符串
- (instancetype)initWithString:(NSString *)aString;
NSString *str = @"abc";
//参数是NSString *类型,
//以一个字符串对象创建另外一个新字符串对象
//两个字符串的内容是相同的
NSString *str2 = [[NSStringalloc] initWithString:str];
//只创建一个空间,地址相同
NSLog(@"%@",str2);
- (instancetype)initWithFormat:(NSString *)format, …;(记住)
//Format: 格式
//initWithFormat:用自定义格式初始化字符串对象,有点类似于C语言中的,printf(“”),SCANF("")那种格式控制模式
NSString *str = [[NSStringalloc] initWithFormat:@"%i,%@,%f",5,@"abc",6.6];
NSString *str2 = [[NSStringalloc] initWithFormat:@"%i and %@ and %f",5,@"abc",6.9];
NSLog(@"%@",str);
NSLog(@"%@",str2);
- (instancetype)initWithUTF8String:(const char *)bytes;
//参数为const char*类型
//可以理解为,将C语言中的字符串转换成OC中的对象。
NSString *str1 = [[NSStringalloc] initWithUTF8String:"abcd"];
NSLog(@"%@",str1);
//类方法创建字符串
+ (instancetype)stringWithString:(NSString *)aString;
NSString *str2 =@"abcd";
NSLog(@"%p",str2);
//根据一个字符串创建另个一新的字符串,但是没有分配新的空间
NSString *str = [NSStringstringWithString:str2];
NSLog(@"%@",str);
NSLog(@"%p",str);
+ (instancetype)stringWithFormat:(NSString *)format,, …;
//stringWithFormat:@"字符串的格式",格式对应的值。
//和实例方法initWithFormat作用一样
NSString *str = [NSStringstringWithFormat:@"%d%@%f",5,@"abcdef",5.6];
NSLog(@"%@",str);
+ (instancetype)stringWithUTF8String:(const char *)bytes;
//通过类方法stringWithUTF8String:创建一个字符串对象
//与之对应的实例方法为:initWithUTF8String:
//二者作用是一样的。
NSString *str = [NSStringstringWithUTF8String:"abc"];
NSLog(@"%@",str);
2.1.1.2求字符串长度
- (NSUInteger)length;
NSString *str= @"abcd";
//无符号长整型
NSUInteger i= [strlength];
//%lu是NSUInteger 的格式占位
NSLog(@"%lu",i);
2.1.1.3通过索引获取相应的字符
- (unichar)characterAtIndex:(NSUInteger)index;
NSString *str = @"abcd";
//characterAtIndex:对应下标下的字符
//unichar :typedef unsigned short unichar;
unichar c = [strcharacterAtIndex:1];
//unichar对应的格式占位符是%c
NSLog(@"%c",c);
2.1.1.4字符串比较
//判断两个字符串是否相等
- (BOOL)isEqualToString:(NSString *)aString;
NSString *str1 =@"abc";
NSString *str2 =@"abcb";
//Xcode编译器在编译的时候,发现两个字符串的内容是一样的,那么就把两个对象合并成同一个对象存在同一个地址空间,
//目的是节省内存
NSLog(@"%p%p%@%@",str1,str2,str1,str2);
//c语言中的布尔类型为ture false
//oc是YES NO
BOOL b = [str1isEqualToString:str2];
//isEqualToString翻译:判断两个字符串是否相同
if (b) {
NSLog(@"yes");
}
else
{
NSLog(@"no");
}
//比较两个字符串大小
- (NSComparisonResult)compare:(NSString *)aString;
NSString *str1 =@"abcd";
NSString *str2 =@"abbd";
//compare比较两个字符串的大小,比较的时ASCII码的值,和C语言中的strcmp是一样的机制
//两个字符串的字符逐一比较,一旦遇到升序或者降序(连个字符不同,前边大为降序,后边大为升序)将停止比较。
//NSComparisonResult是一个枚举:里边有
//NSOrderedAscending = -1;
//NSOrderedDescending = 1;
//NSOrderedSame = 0;
NSComparisonResult i = [str1compare:str2];
NSLog(@"%ld",i);
if (NSOrderedAscending == [str1compare:str2]) {
NSLog(@"NSOrderedAscending");
}
else if (NSOrderedDescending == [str1 compare:str2])
{
NSLog(@"NSOrderedDescending");
}
else if (NSOrderedSame == [str1 compare:str2])
{
NSLog(@"NSOrderedSame");
}
//不区分大小写比较大小
- (NSComparisonResult)caseInsensitiveCompare:(NSString *)aString;
NSString *str1 =@"C";
NSString *str2 =@"b";
//忽略大小写进行比较字符串
//比较的时候可以都按大写比较,或者都按小写比较。
if (NSOrderedSame == [str1caseInsensitiveCompare:str2]) {
NSLog(@"NSOrderedSame");
}
elseif(NSOrderedDescending == [str1caseInsensitiveCompare:str2])
{
NSLog(@"NSOrderedDescending");
}
elseif(NSOrderedAscending == [str1caseInsensitiveCompare:str2])
{
NSLog(@"NSOrderedAscending");
}
2.1.1.5字符串查找
- (NSRange)rangeOfString:(NSString *)aString;(记住)
NSString *str =@"abcd";
//rangeOfString 查找字符串中是否存有子字符串
//一般用到项目中电话本里边
NSRange range = [strrangeOfString:@"bd"];
// typedef struct _NSRange {
// NSUInteger location;
// NSUInteger length;
// } NSRange;
//如果主字符串具有字符串,那么就返回子字符串在主字符串中的下标,如果没有就返回NSNotFound
//NSNotFound意思是没有找到
if (range.location ==NSNotFound)
{
NSLog(@"没有子字符串");
}
else
{
NSLog(@"%lu",range.location);
}
NSLog(@"%lu",range.location);
//打印子字符串在主字符串中的下标位置
NSLog(@"%lu",range.length);
//打印子字符串的长度
2.1.1.6判断前后缀
- (BOOL)hasPrefix:(NSString *)aString;
- (BOOL)hasSuffix:(NSString *)aString;
NSString *str = @"abcdefg";
//hasPrefix:判断是否具有前缀(只要在前边的都是前缀)
BOOL b1 = [strhasPrefix:@"ab"];
//hasSuffix:判断是否具有后缀(只要在后边都是后缀)
//其实两个函数就是一个从后边查,一个从前边查。
BOOL b2 = [strhasSuffix:@"fg"];
if (b1) {
NSLog(@"YES");
}
else
{
NSLog(@"NO");
}
if (b2) {
NSLog(@"YES");
}
else
{
NSLog(@"No");
}
2.1.1.7数字串转化为数字
- (double)doubleValue;
- (float)floatValue;
- (int)intValue;
NSString *str = @"66";
//把数字字符串对象转成整型
int i = [strintValue];
NSLog(@"%i",i);
- (NSInteger)integerValue ;
- (longlong)longLongValue ;
- (BOOL)boolValue ;
NSString *str = @"YES";
if ([str boolValue]) {
NSLog(@"YES");
}
2.1.1.8大小写转换
- (NSString *)uppercaseString;
- (NSString *)lowercaseString;
- (NSString *)capitalizedString;
NSString *str = @"abcD";
// uppercaseString 把字符串的所有字符转换成大写
NSString *str2 = [struppercaseString];
//lowercaseString 把字符串的所有字符转换成小写
NSString *str3 = [str lowercaseString];
//capitalizedString 把字符串中所有单词的首字母转换成大写,其他的都转换成小写
NSString *str4 = [strcapitalizedString];
NSLog(@"%@",str2);
NSLog(@"%@",str3);
NSLog(@"%@",str4);
2.1.1.9字符串提取(记住)
- (NSString *)substringFromIndex:(NSUInteger)from;
NSString *str =@"abcdefg";
//substringFromIndex:提取从指定下标到结尾的子字符串
NSString *str2 = [strsubstringFromIndex:2];
NSLog(@"%@",str2);
- (NSString *)substringToIndex:(NSUInteger)to;
NSString *str = @"abcdefg";
//substringToIndex:从头打印指定个数的字符,或者理解成从开头到指定下标前的字符
NSString *str2 = [strsubstringToIndex:3];
NSLog(@"%@",str2);
- (NSString *)substringWithRange:(NSRange)range;
NSString *str = @"abcdefghi";
//从NSMakeRange指定的坐标开始打印指定个数的字符,NSMakeRange参数1为指定下标,参数2为指定个数
NSString *str2 = [strsubstringWithRange:NSMakeRange(0,3)];
NSLog(@"%@",str2);
2.1.1.10从本地读取文件内容
- (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;(实例方法)
//从文件中读取文件的内容,返回一个NSString *的地址
//参数1:以NSString类型传入一个文件路径
//参数2:文件的编码格式
//参数3:一般为nil
NSString *str = [[NSStringalloc] initWithContentsOfFile:@"/Users/student/Desktop/hello.txt"encoding:NSUTF8StringEncodingerror:nil];
NSLog(@"%@",str);
+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;(类方法)
//从文件中读取文件的内容,返回一个NSString *的地址
//参数1:以NSString类型传入一个文件路径
//参数2:文件的编码格式
//参数3:一般为nil
NSString *str1 = [NSStringstringWithContentsOfFile:@"/Users/student/Desktop/hello.txt"encoding:NSUTF8StringEncodingerror:nil];
NSLog(@"%@",str1);
- NSString 和 NSMutableString
- NSString 和 NSMutableString
- NSString和NSMutableString
- 字符串:NSString 和 NSMutableString
- NSString 和 NSMutableString常用功能
- Objective-C NSString和NSMutableString
- NSString 和 NSMutableString(2)
- OC中的NSString和NSMutableString
- Foundation框架---NSString 和 NSMutableString
- Foundation 之 NSString和NSMutableString
- IOS基础 NSString 和 NSMutableString
- ios-NSString和NSMutableString函数
- NSString NSMutableString
- NSString & NSMutableString
- NSString/NSMutableString
- NSString、NSMutableString
- NSString NSMutableString
- NSString,NSMutableString
- Peersim 学习日记 07 在Eclipse中运行PeerSim(继续之前的仿真实习报告)
- WWDC2014之App Extensions (App功能共享)
- 随机梯度下降与批量梯度下降
- .net的手机应用
- Linux中常用操作命令
- NSString 和 NSMutableString
- iOS8指纹识别TouchID
- 不占用额外空间 交换两个变量的值
- UVa 11107 - Life Forms (后缀数组 求出现K次的串 根据height分组)
- 吉利豪情报废走得早,来瞅瞅过程吧
- 大话数据结构学习笔记(六)
- 使用契约优于配置的方式开发Struts2的MVC程序(一)
- visio设置流程框大小和间距
- SQL重复记录查询