注意点:
1.fromIndex,toIndex,withRange
从哪个位置其到尾,从开头到哪个位置,从哪到哪之间的位置。
不过,这里需要注意的是,这个index是数组的下标的。从0开始算。
2.NSMutableString继承于NSString,NSString能用的方法,NSMutableString都能用。
3.NSMutableString追加字符串时,本身序列发生变化,无需重新赋值
一、不可变字符串NSString
1. 初始化方法
unichar data[6] = {97 , 98 , 99 , 100 , 101, 102}; //1. 使用数组初始化字符串 NSString* str = [[NSString alloc] initWithCharacters: data length:6]; NSLog(@"%@" , str); char* cstr = "Hello, iOS!"; //2. 将C风格的字符串转换为NSString对象 NSString* str2 = [NSString stringWithUTF8String:cstr]; NSLog(@"%@" , str2); //3. 将字符串写入指定文件,并读取文件内容,用文件内容初始化字符串[str2 writeToFile:@"myFile.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil]; NSString* str3 = [NSString stringWithContentsOfFile:@"NSStringTest.m" encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@" , str3);
2.功能
NSString* str = @"Hello"; NSString* say = @"Hi"; // 1.在str后面追加固定的字符串 str = [str stringByAppendingString:@",iOS!"]; NSLog(@"%@" , str); const char* cstr = [str UTF8String]; NSLog(@"获取的C字符串:%s" , cstr); // 2.在str后面追加带变量的字符串。 str = [str stringByAppendingFormat:@"%@是一句很友好的话." , say]; NSLog(@"%@" , str); NSLog(@"str的字符个数为:%lu" , [str length]); NSLog(@"str按UTF-8字符集解码后字节数为:%lu" , [str lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); // 3.获取str的前10个字符组成的字符串 NSString* s1 = [str substringToIndex:10]; NSLog(@"%@" , s1); // 4.获取str的从第5个字符开始,与后面字符组成的字符串 NSString* s2 = [str substringFromIndex:5]; NSLog(@"%@" , s2); // 5.获取str从第5个字符开始,到第15个字符组成的字符串 NSString* s3 = [str substringWithRange:NSMakeRange(5, 15)]; NSLog(@"%@" , s3); // 6.获取iOS在str中出现位置 NSRange pos = [str rangeOfString:@"iOS"]; NSLog(@"iOS在str中出现的开始位置:%ld, 长度为:%ld" // 7.将str的所有字符转为大写 str = [str uppercaseString]; NSLog(@"%@" , str);
二、可变字符串NSMutableString
NSString* say = @"HI"; // 创建一个NSMutableString对象 NSMutableString* str = [NSMutableString stringWithString:@"Hello"]; // 1.追加固定字符串 [str appendString:@",iOS!"]; NSLog(@"%@" , str); // 2.追加带变量的字符串 [str appendFormat:@"%@是一句很友好的话." , say]; NSLog(@"%@" , str); // 3.在指定位置插入字符串 [str insertString:@"xxx" atIndex:6]; NSLog(@"%@" , str); // 4.删除从位置6到位置12的所有字符 [str deleteCharactersInRange:NSMakeRange(6, 12)]; NSLog(@"%@" , str); // 5.将从位置6到位置9的字符串替换成enen [str replaceCharactersInRange:NSMakeRange(6, 9)withString:@"enen"]; NSLog(@"%@" , str);
时间: 2024-10-13 21:13:44