温故而知新
巩固和学习NSString 和NSMutableString.
1. NSString
// // AppDelegate.m // HelloWorld // // Created by lengxuan on 14-4-10. // Copyright (c) 2014年 lengxuan. All rights reserved. // #import "AppDelegate.h" #import "Person.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; // - - - - 创建一个字符串 // 创建在常量区 NSString *string1 = @"这是一个字符串常量"; // 创建在堆区 NSString *string2 = [[NSString alloc] init]; // 创建在常量区 NSString *string3 = [NSString string]; // 快速创建一个格式化的字符串, 创建在堆区 int number = 2; NSString *string4 = [[NSString alloc] initWithFormat:@"%d",number]; // 比较字符串 NSString *string5 = [[NSString alloc] initWithFormat:@"test"]; NSString *string6 = [[NSString alloc] initWithFormat:@"test"]; NSString *string7 = @"test"; NSString *string8 = @"test"; // - - - - 测试字符串内容是否相等 if([string5 isEqualToString:string6]){ NSLog(@"string5 isEqualTo string6"); } if(string5 == string6){ NSLog(@"string5 == string6"); }else{ NSLog(@"string5 != string6"); } // 创建在堆区,内容相等但是指针不相等 // Result : string5 isEqualTo string6 // Result : string5 != string6 if([string7 isEqualToString:string8]){ NSLog(@"string7 isEqualTo string8"); } if(string7 == string8){ NSLog(@"string7 == string8"); }else{ NSLog(@"string7 != string8"); } // 创建在常量区,内容相等且指针相等 // Result : string7 isEqualTo string8 // Result : string7 == string8 // -- - - 比较字符串的大小 NSString *string9 = @"a"; NSString *string10 = @"b"; NSLog(@"string9 caseInsensitiveCompare:string10 : %d",[string9 caseInsensitiveCompare:string10]); // Result: string9 caseInsensitiveCompare:string10 : -1 // -1表示升序,即前者小于后者。0表示相等。1表示降序。 字符串的升降序是根据ASCII来排序的。 // -- - - 求字符串的长度 NSString *string11 = @"string length"; [string11 length]; // - - - - 改变字符串大小写 NSString *string12 = @"hello, world!"; [string12 uppercaseString]; //全部大写 [string12 lowercaseString]; //全部小写 [string12 capitalizedString]; //单词首字母大写,其他字母小写 // - - - - 将字符串转换成基本数据类型 NSString *string13 = @"3.14"; //字符串中含有非数字字符,则只会取到非数字字符左方的数字。比如:“3.1a4” : 3.10000 NSLog(@"%d", [string13 boolValue]); //转换成BOOL类型, Result : 1 等于0的时候结果为0,其余为1 NSLog(@"%f", [string13 floatValue]); //转换成浮点型, Result : 3.1400 NSLog(@"%f", [string13 doubleValue]); //转换成双精度类型, Result : 3.1400 NSLog(@"%d", [string13 intValue]); //转换成整型, Result : 3 // - - - - 将字符串分割成数组 NSString *string14 = @"ab,cd,ef,gh"; NSArray *array = [string14 componentsSeparatedByString:@","]; NSLog(@"array componentsSeparatedByString: %@", array); // - - - - 截取字符串 NSString *string15 = @"abcdefgh"; NSLog(@"string15 subStringToIndex:2 is %@", [string15 substringToIndex:2]); //从开头一直截取到指定下标,不包含该下标。 Result : ab NSLog(@"string15 subStringFromIndex:2 is %@", [string15 substringFromIndex:2]); //从指定下标截取到末尾,包含该下标。 Result : cdefgh // - - - - 根据范围来截取字符串 NSString *string16 = @"abcdefgh"; NSLog(@"string16 location:2 length:3 is %@",[string16 substringWithRange:NSMakeRange(2, 3)]); //从指定下标截取指定长度的字符串。 Result : cde // - - - - 拼接字符串 NSString *string17 = @"abc"; NSString *string18 = @"def"; NSString *stringAppend1 = [[NSString alloc] initWithFormat:@"%@%@", string17, string18]; NSString *stringAppend2 = [string17 stringByAppendingFormat:@"%@", string18]; NSString *stringAppend3 = [string17 stringByAppendingString:string18]; // - - - - 查找字符串里的字符串位置 NSString *string19 = @"zcaadasdastarget=_lengxuanfeiadadas"; NSRange range = [string19 rangeOfString:@"target=_lengxuanfei"]; if(range.location != NSNotFound){ NSLog(@"find target_lengxuanfei, location : %u, length : %u", range.location, range.length); } //Result : find target_lengxuanfei, location : 10, length : 19 }
2. NSString
NSMutable是NSString的子类,继承上述NSString的方法和属性。
但是不同点是;NSString在内存中的大小的地址是不变的,重新复制时,其实是开辟另外一块内存地址分配给NSString。是不可变的。
NSMutableString可以在原先分配的内存的基础上通过增减内存的方式来改变自己。是可变的。
// 插入字符串 NSMutableString *mutableString1 = [[NSMutableString alloc] initWithString:@"abc"]; [mutableString1 insertString:@"defg" atIndex:3]; //直接在当前字符串的指定下标处插入字符。 NSLog(@"mutableString1 insert result: %@", mutableString1); //Result : abcdefg // 删除字符串 [mutableString1 deleteCharactersInRange:NSMakeRange(3, 4)]; //直接在当前字符串中删除指定范围内的字符 NSLog(@"mutableString1 delete(3,4) result: %@", mutableString1);//Result : abc //替换字符串 [mutableString1 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"defg"]; //在当前字符串内替换掉指定范围内的字符串 NSLog(@"mutableString1 replace(3,4) result: %@", mutableString1); //Result : defg
[学习笔记]NSString andNSMutableString,布布扣,bubuko.com
[学习笔记]NSString andNSMutableString
原文:http://www.cnblogs.com/lengxuanfei/p/3655568.html