Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。
创建NSString字符串:
NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+ " 字符串 " 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@
int main() { // 创建字符串 NSString *str = @"jack"; NSString *s1 = [[NSString alloc] initWithFormat:@"age = %d" ,10]; // c字符串转oc字符串 NSString *s2 = [[NSString alloc] initWithUTF8String:"jack"]; // oc 转 c const char *c1 = [s2 UTF8String]; NSLog(@"%s", c1); // NSUTF8StringEncoding 用到中文可以用这个 // 传进来文件路径可以查看文件 NSString *s3 = [[NSString alloc] initWithContentsOfFile:"/Users/apple/Desktop/1.txt" encoding:NSUTF8StringEncoding error:nil]; /*URL :资源路径 协议头://路径 file:// ftp:// http://www.baidu.com */ // 在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode
// NSURL *url = [[NSURL alloc] initWithString:@"file:///Users/apple/Desktop/1.txt"];
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/1.txt"];
NSString *s4 = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"s4=\n%@", s4); return 0; }
NSString :不可变字符串
NSMutableString :可变字符串
int main() { // 创建字符串 NSMutableString *s = [NSMutableString stringWithFormat:@"my age is 23"]; // 拼接内容到s的后面 [s appendString:@" 3 21"]; // 获取is的范围 NSRange range = [s rangeOfString:@"is"]; [s deleteCharactersInRange:range]; NSString *s1 = [NSString stringWithFormat:@"age is 23"]; NSString *s3 = [s1 stringByAppendingString:@" 3 21"]; NSLog(@"s=%@, s1=%@", s, s1); return 0; }
字符串中删除元素
stringWithString 方法:用于创建字符串初始化赋值
rangeOfString方法:传入字符串返回一个在该字符串中的范围 也可以写 NSMakeRange(0, 3) 意思是范围在字符串0位到第3位
deleteCharactersInRange:删除字符串 参数为Range 就是删除的范围。
int main() { //创建字符串 NSMutableString *str = [NSMutableString stringWithString:@"haha 你好!!"]; //删除字符串中含"haha"的字符 [str deleteCharactersInRange: [str rangeOfString: @"haha"]]; NSLog(@"str = %@",str); return 0; }
时间: 2024-10-04 22:40:29