一、静态字符串(NSString)
1、静态字符串
静态字符串就是不可改变的字符串,字符串的内容不可以做添加、修改、删除等操作,如"123",这个字符串创建以后就不可以变更了,它·就是"123",但是它的指针可以重新指向其它字符串。
2、静态字符串(NSString)的创建
1.使用字符字面值常量进行创建(一般比较常用)
NSString *str1=@"字符串";//系统分配内存无需程序员自己处理
2.手动创建空字符串
NSString *str2=[[NSString alloc] init];
NSString *str3=[NSString string];//用这两种方法创建的字符串意义不大因为不可修改一直是空串
3.手动创建字符串并且赋初值
NSString *str4=[[NSString alloc]initWithString:@"jack"];
NSString *str5=[NSString stringWithString:str4];
4.按照一定格式拼接字符串
int age = 10;
NSString *name = @"Rose";
NSString *str4 = [[NSString alloc] initWithFormat:@"%@ is %d years old!", name, age];
NSString *str4_ = [NSString stringWithFormat:@"%@ is %d years old!", name, age];
3.静态字符串中常用的一些方法
1.获取字符串的长度
NSString *name = @"Rose";
int len=name.length;//可以用于判断字符串是否为空,长度为0及为空
2.获取子字符串操作
//示例字符串
NSString *str = @"The NSString class and its mutable subclass";
//1.从索引位置开始查找子字符串
NSString *str1=[str substringFromIndex:1];
//2.从开头到索引位置但不包含索引位置对应的字符
NSString *str2 = [str substringToIndex:5];
//3.获取某个范围的子字符串
//NSRange range = {4,8};//c语言的方式
NSRange range = NSMakeRange(4, 8);
NSString *str3 = [str substringWithRange:range];
3.字符串的比较操作
NSString *passwd = @"123";
if ([passwd isEqualToString:@"123456"]) { //isEqualToString字符串比较返回BOOL值
NSLog(@"the same");
} else{
NSLog(@"not the same");
}
NSString *addr = @"a";
NSComparisonResult result = [addr compare:@"b"];//compare返回一个NSComparisonResult结构体
if (result == NSOrderedAscending) {
NSLog(@" < ");
} else if (result == NSOrderedSame){
NSLog(@" = ");
} else{
NSLog(@" > ");
}
NSString *p1= @"a";
NSString *p2= @"a";
if ([p1 isEqual:p2]) {
NSLog(@"是同一个对象");
} else{
NSLog(@"不是同一个对象");
}
4.判断字符串的前缀和后缀
NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
if ([url hasSuffix:@".jpg"]){ //判断字符串的后缀是否为.jpg
NSLog(@"是一个图片");
}
if ([url hasPrefix:@"http:"]) { //判断字符串的前缀是否为.jpg
NSLog(@"是一个网址");
}
5.判断字符串是否包含某一个子字符串
NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
if ([url containsString:@"baidu.com"]) { //containsString用于判断字符串的包含关系
NSLog(@"是百度的资源");
}
6.获取某个字符串在原字符串里面的具体位置
NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png";
NSRange r = [url rangeOfString:@"png"];//NSRange结构体包含location、length及索引位置(1)和长度(2)
if (r.length == 0){
NSLog(@"不存在");
} else{
NSLog(@"存在:%lu %lu", r.location, r.length);
}
7.在一个字符串后面追加一个字符串形成新的字符串
NSString *hStr = @"abc";
NSString *newStr = [hStr stringByAppendingString:@"de"];//在末尾追加"de"
NSString *newStr2 = [hStr stringByAppendingFormat:@"my name is %@", @"jake"];//以一定格式追加字符串
NSLog(@"%@ %@", hStr, newStr);
8.数字型字符串转化为对应的数字类型
NSString *numStr = @"123";
int num = [numStr intValue];
double num2=[numStr doubleValue];
float num3=[numStr floatValue];
二、动态字符串(可变字符串NSMutableString)
1、动态字符串
可以通过一些方法对字符串的内容进行添加、修改、删除等操作
2、动态字符串(NSMutableString)的创建
NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0];
NSMutableString *mStr_ = [NSMutableString stringWithCapacity:0];
3.动态字符串中常用的一些方法
1.字符串的追加
NSMutableString *mStr_ = [NSMutableString stringWithCapacity:0];
[mStr appendString:@"Hello"];//在字符串尾部追加"Hello"
[mStr appendFormat:@" my name is %@",@"jake"];//以一定格式追加先加"my name is"然后加"jake"
2.字符串的插入
[mStr insertString:@"World " atIndex:6];//atIndex插入位置的索引
3.字符串内容的替换
NSRange rg = [mStr rangeOfString:@"Rose"];//找出要替换子串的索引位置
[mStr replaceCharactersInRange:rg withString:@"Jack"];//用"Jack"替换索引位置处的字符串
[mStr replaceOccurrencesOfString:@"ABC" withString:@"one two three" options:NSLiteralSearch range:NSMakeRange(0, 3)];//将字符串中的"ABC"替换为"one two three",替换模式为NSLiteralSearch范围用NSRange结构体表示
/*
NSCaseInsensitiveSearch = 1, //不区分大小写比较
NSLiteralSearch = 2, //逐字节比较 区分大小写
NSBackwardsSearch = 4, //从字符串末尾开始搜索
*/
4.删除字符串中的内容
[mStr deleteCharactersInRange: NSMakeRange(0, 12)];//NSMakeRange(0, 12)构造NSRange类型结构体,表示要删除的字符串内容
5.重新设置字符串的内容
[mStr setString:@"abc"];