您的位置:首页 > 移动开发 > Objective-C

[5]姥爷幽默谈Objective-C-字符串(NSString)

2016-01-10 16:57 519 查看
1.NSString

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"];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息