黑马程序员_IOS开发_Objective-C学习笔记_NSString
NSString
NSString是一个IOS OC开发中经常使用到得一个对象类型。NSString是NSObject(Foundation的基础对象)的子类,所以具有NSObject的所有特性。
NS是Cocoa类对象类型的前缀,来源于乔布斯公司的操作系统的名字 NEXTSTEP
1.创建NSString对象
1.1此方法不需要手动释放内存。
NSString *aString = @"This is String"; //注意:这里和C语言字符串不一样,需要在头部放一个@符号
1.2此方法需要手动释放内存
NSString*aString =[[NSString alloc] initWithFormat:@"This is String"];
2.使用NSString对象
NSString *string = @"This is a Person Class"; NSLog(@"%@", string);
3.释放NSString
[string release];
4.NSString常用方法
NSString * stringA = @"This is string A"; NSString * stringB = @"This is string B"; NSString * result; NSComparisonResult compareResult; //计算字符串中的字符 NSLog(@"Length of stringA: %lu", [stringA length]); //判断字符串是否包含 NSRange range = [tempStr rangeOfString:@")\">"]; if (range.location == NSNotFound){ //不包含 } else//包含 { } //将一个字符串复制到另一个字符串 result = [NSString stringWithString: stringA]; NSLog(@"Copy: %@", result); //将一个字符串复制到另一个字符串的末尾 stringB = [stringA stringByAppendingString: stringB]; NSLog(@"Concatentation: %@", stringB); //验证两个字符串是否相等 if ([stringA isEqualToString: result] == YES) { NSLog(@"stringA == result"); }else{ NSLog(@"stringA != result"); } //验证一个字符串是否小于、等于或者大于另一个字符串 compareResult = [stringA compare: stringB]; if (compareResult < NSOrderedAscending) { NSLog(@"stringA < stringB"); }else if (compareResult == NSOrderedSame){ NSLog(@"stringA = stringB"); }else{ NSLog(@"stringA > stringB"); } //将字符串转换为大写 result = [stringA uppercaseString]; NSLog(@"UppercaseString conversion: %s", [result UTF8String]); //将字符串转换为小写 result = [stringA lowercaseString]; NSLog(@"LowercaseString conversion: %s", result); NSLog(@"Original string: %@", stringA); //(1)截取字符串”20 | http://www.baidu.com”中,”|”字符前面和后面的数据,分别输出 NSString * stringA = @"20|http://www.itheima.com"; NSArray * stringB = [stringA componentsSeparatedByString:@"|"]; //使用 | 分割字符串为数组 for (stringA in stringB) { //遍历输出 NSLog(@"obj = %@", stringA); } //(2)从字符串@“aBcD_EfGk”中取出EfGk,并让大写字母转成小写,输出efgk NSString * str3 = @"aBcD_EfGk"; NSRange range = {5, 4}; //定义rang,开始位置为5,获取4个 NSString * str4 = [str3 substringWithRange:range]; //获取EfGk NSLog(@"%@", [str4 lowercaseString]); //输出,并使用 lowercaseString 转换成小写 //(3)给定一个字符串,判断字符串中是否含有“png”,如果有就删除。 NSString * str5 = @"skejf_png_ksd_ppng——————png"; NSString * str6 = [str5 stringByReplacingOccurrencesOfString:@"png" withString:@""]; //替换png NSLog(@"%@", str6); //打印 // 数组转字符串 NSLog(@"%@", [[str7 componentsSeparatedByCharactersInSet:CharacterSet] componentsJoinedByString:str8]);
5 NSMutableString常用方法
//capacity 容量,指定存储空间效率高。如果字符串长度大于10,则会自动增加存储空间。 NSMutableString * stringA = [[NSMutableString alloc] initWithCapacity:10]; //setString 设置字符串 [stringA setString:@"apple 1234"]; //appendString 拼接字符串 [stringA appendString:@"567"]; //appendFormat 拼接格式字符串 [stringA appendFormat:@" age = %i", 888]; //replaceCharactersInRange:range withString:id //根据范围替换字符串 //找到范围 NSRange range = [stringA rangeOfString:@"ple"]; //开始替换 [stringA replaceCharactersInRange:range withString:@"*"]; //insertString:< #(NSString *)#> atIndex:< #(NSUInteger)#> //在指定索引后面插入字符串 [str1 insertString:@"HHH" atIndex:3]; //deleteCharactersInRange:< #(NSRange)#> //删除指定范围字符串 [stringA deleteCharactersInRange:range]; NSLog(@"%@", stringA); [stringA release];
Description方法:
程序可以利用NSLog来打印对象的,但是默认是显示的类名和对象在内存中的地址。而当我们需要自定义的打印内容为,我们可以重载Description方法。
//方法实现 - (NSString *) description { return [NSString stringWithFormat: @"name = %@, age = %i, height = %i, width = %i", _name, _age, _height, _width]; } //打印(u 是创建的对象) NSLog(@"%@", [u description]);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。