[5]姥爷幽默谈Objective-C-字符串(NSString)
2016-01-10 16:57
519 查看
1.NSString
2.NSSMutableString
Description: The NSString class declares the programmatic interface for an object that manages immutable strings. An immutable string is a text string that is defined when it is created and subsequently cannot be changed. NSString is implemented to represent an array of Unicode characters, in other words, a text string. NSString 为一个管理不可变字符串的对象提供了一个编程接口。一个不可变的字符串是一个当它被创建后,不能能改变的纯文本字符。NSString 相当于一个Unicode 字符组成的数组,换句话说,就是一个纯文本字符串。 1)字符串的创建 a.创建常量字符串。 NSString *constString = @"This is a String!"; b.用实例⽅方法创建字符串 NSString *allocString = [[NSString alloc] initWithString:@"我是一个动态创建的不可变 字符串"]; c.用类⽅方法创建字符串 NSString *allocString = [[NSString stringWithString:@"我是一个动态创建的不可变字符串"]; d.⽤一个字符串创建另一个字符串 NSString *oldString=@"ABC"; NSString *copyStirng=[NSString stringWithString:oldString]; e.(1)用标准c创建字符串:initWithCString方法 char *cString = "ABC"; NSString *cToNsstring1 = [[NSString alloc] initWithCString:cStringencoding:NSUTF8StringEncoding]; (2)第二种形式 char *cStr = "ABD"; NSString *cToNsstring2 = [NSStringstringWithUTF8String:cStr]; f.用类⽅法 创建格式化字符串 NSString *formatStringa=[NSString stringWithFormat:@"%@,%d",@"ABC",4]; 2)字符串的改查 a.字符串长度 NSString *charCountString=@"ABC"; NSLog(@"%@的⻓度%ld",charCountString,[charCountString.length]) ; b.字符串比较 NSString *stringa = @"这是一个字符串!"; NSString *stringb = @"这第二个字符串!"; BOOL result = [stringa isEqualToString:stringb]; NSLog(@"⽐比较结果:%d",result); c.(1)区分⼤小写的⽐较 NSString *string1 = @"This is a string!"; NSString *string2 = @"This is a String!"; NSComparisonResult intResult1 = [string1 compare:string2]; NSLog(@"区分⼤大⼩小写时"); if (intResult1==NSOrderedSame) { NSLog(@"%@==%@",string1,string2); } else if(intResult1==NSOrderedAscending){ NSLog(@"%@<%@",string1,string2); } else if(intResult1==NSOrderedDescending){ NSLog(@"%@>%@",string1,string2); } c.(2)不区分⼤小写的⽐较 NSComparisonResult intResult2 = [string1 caseInsensitiveCompare:string2]; NSLog(@"不区分⼤大⼩小写时"); if (intResult2==NSOrderedSame) { NSLog(@"%@==%@",string1,string2); } else if(intResult2==NSOrderedAscending){ NSLog(@"%@<%@",string1,string2); } else if(intResult2==NSOrderedDescending){ NSLog(@"%@>%@",string1,string2); } d.字符串拼接 NSString *str11 = @"hello"; NSString *str22 = @"world"; NSString *str33 = [str11 stringByAppendingString:str22]; NSString *str44 = [str22 stringByAppendingFormat:@"%d...%d",10,20]; NSLog(@"str11=%@,str22=%@,str33=%@,str44= %@",str11,str22,str33,str44); e.(1)⽤用指定字符串作为标志拆分原字符串 NSString *list = @"Norman, Stanley, Fletcher,abc"; NSArray *listItems = [list componentsSeparatedByString:@", "]; for(NSString *itemstr in listItems) { NSLog(@"%@",itemstr); } e.(2).字符串转成数字 [doubleString doubleValue]; [floatString floatValue]; [longlongString longLongValue]; [boolString boolValue]; f.(1)转成大写字⺟ [lowcaseString uppercaseString]); (2)转成⼩写字⺟ [uppercaseString lowercaseString]); g.子串获取 //下标从0开始 (1)获取字符串前n个字符 substringToIndex:6]; (2)获取从字符串n个字符开始的字符串 substringFromIndex:8] (3)获取指定范围内的字符串 res=[parentString1 substringWithRange:NSMakeRange(8, 6)]; (4)获得⼀一个字符串在另⼀一个字符串中的位置 subRange=[string1 rangeOfString:@"string A"]; (5)判断是否存在另⼀一个字符串中 subRange=[parentString1 rangeOfString:@"string B"]; if (subRange.location==NSNotFound) { NSLog(@"字符 串string B在%@中不存在",parentString1); } else { NSLog(@"字符串string B在字符串%@中的起始位是%lu,是%lu",parentString1,subRange.location,subRange.length);} h.获得一个字符串中指定位置的一个字符 [parentString1 characterAtIndex:10]); i.把一个字符串所有单词⾸字母大写,其它字⺟小写 [parentString1 capitalizedString]); j.替换⼀个字符串中的内容 res=[string1 stringByReplacingCharactersInRange:NSMakeRange(8, 6) withString:@"STRING"]; k.去掉空格及换行符 NSString *ook = @"\n \t\t hello there \t\n \n\n"; NSString *trimmed =[ook stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; l.前缀,后缀的判断 前缀 [testString hasPrefix:@"abc"] 后缀 [testString hasSuffix:@"txt"] m.从文件中读取字符串 (1)读当前⺫录下的⽂件 使⽤用类⽅法创建对象 NSString *str = [NSString stringWithContentsOfFile:@"file.txt" encoding:NSUTF8StringEncoding error:nil]; (2) 读指定路径的文件 NSString *url = @"/Users/ dstliang/Desktop/test.txt"; NSString *path =[NSStringstringWithContentsOfFile:url encoding:NSUTF8StringEncoding error:nil];
2.NSSMutableString
NSMutableString :The NSMutableString class declares the programmatic interface to an object that manages a mutable string—that is, a string whose contents can be edited—that conceptually represents an array of Unicode characters. To construct and manage an immutable string—or a string that cannot be changed after it has been created—use an object of the NSString class. NSMutableString: NSMutableString 类为一个可编辑的字符串(实际也是一个Unicode 字符数组)管理对象管理声明了一个编程接口。为了构建并管理一个不可变的字符串或一个被NSString 类创建并使用不能被改变的字符串。 1)字符串的创建(应为NSMutableString 是 NSString的子类,所有NSString里面的方法,在NSMutableString里面都有) a.创建可变字符串对象 使⽤用类⽅方法创建对象 NSMutableString *string = [NSMutableString stringWithCapacity:45]; b.可变字符串的初始化 [string setString:@"ABC"]; 2)字符串的增删改查 a.增加字符串(拼接) [string appendString:@"ABC"]; b.字符串对象的删除 NSMutableString *welcome = [NSMutableString stringWithCapacity:20]; c.插⼊字符串insertString NSMutableString *insert = [[NSMutableString alloc] initWithFormat:@"ABC"]; [insert insertString:@"ABD" atIndex: 11]; d.字符串对象的替换 NSMutableString *repstring = [[NSMutableString alloc] initWithString:@"ABC"];
相关文章推荐
- 用SQL语句实现替换字符串
- MySQL replace函数替换字符串语句的用法
- PowerShell替换字符串操作符replace简明教程
- PowerShell中使用replace操作符替换字符串实例
- javascript删除字符串最后一个字符
- NSString与C字符串之间的相互转换
- NSString 用法2
- NSString 用法3
- linux:vi替换命令
- vim 查找替换
- vim 字符替换
- IOS字符串拼接方法小结
- ios NSString 使用
- OC学习之--字符串类&数组类&值对象
- 字符串处理,数据类型
- NSString为啥要使用Copy属性
- 字面量语法的好处
- 字符串的获取
- isEqualToString的内部实现
- 字符串的判断