字符串(NSString)
Objective-C 中处理字符串的的类主要是 NSString 和 NSMutableString 两个类,NSString 类一旦创建,就不可以再修改,若需要一个可修改的字符串对象,需创建 NSMutableString 实例。
不可变字符串(NSString)
1.创建字符串常量
NSString *string = @"字符串常量";
2.创建一个空字符串
NSString *string = [[NSString alloc] init];
3.创建一个格式化字符串
NSString *string = [[NSString alloc] initWithFormat:@"%d",20];
4.对比两个字符串是否相同
if ([string1 isEqualToString:string2]) {
NSLog(@"string1 isequal string2 相同");
}else{
NSLog(@"string1 isequal string2 不相同");
}
5.比较字符串大小
NSComparisonResult result = [string1 caseInsensitiveCompare:string2];
6.求字符串长度
NSUInteger length = [string1 length];
7.改变字符串大小写
NSLog(@"%@", [string4 uppercaseString]); //全部大写
NSLog(@"%@", [string4 lowercaseString]); //全部小写
NSLog(@"%@", [string4 capitalizedString]); //首字母大写
8.将字符串转换为数组
NSString *string = @"one two three four five";
NSArray *array = [string8 componentsSeparatedByString:@" "];
9.截取字符串
//从开头截取到指定位置,但不包括指定位置
NSString *str1 = [string substringToIndex:1];
//从指定位置开始到结束,包括指定位置
NSString *str2 = [string substringFromIndex:2];
10.根据范围截取字符串
//从第 4 个字符开始截取,长度为 2 个字符
NSString *str = [string substringWithRange:NSMakeRange(4, 2)];
11.连接字符串
NSString *str = [string1 stringByAppendingString:string2];
NSString *str = [string1 stringByAppendingFormat:@"%@", string2];
12.查询字符串对象
NSRange range = [str rangeOfString:@"abc"];
if (range.location != NSNotFound) {
NSLog(@"找到了");
} else {
NSLog(@"没找到");
}
可变字符串(NSMutableString)
1.初始化
NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"abc"];
NSMutableString *str2 = [NSMutableString stringWithFormat:@"def"];
NSMutableString *str3 = [NSMutableString stringWithString:@"abcdef"];
2.插入字符串
//从字符串第 3 个字符开始插入
[str1 insertString:@"def" atIndex:3];
3.删除字符串
//从字符串第 0 个字符开始删除,删除长度为 3
[str1 deleteCharactersInRange:NSMakeRange(0, 3)];
4.替换字符串
//从字符串第 0 个字符开始替换,替换长度为 3
[str1 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"abc"];
5.连接字符串
[str1 appendString:str2];
字符串比较
比较方法有:
[value compare:(NSString *)];
[value compare:(NSString *) options:(NSStringCompareOptions)];
[value compare:(NSString *) options:(NSStringCompareOptions) range:(NSRange)];
传入的参数为:compare:(NSString *),例如:
[value compare:@"1234567890"] //返回 NSOrderedSame
NSStringCompareOptions:
NSCaseInsensitiveSearch //不区分大小写比较。
NSLiteralSearch //区分大小写比较。
NSBackwardsSearch //从字符串末尾开始搜索。
NSAnchoredSearch //搜索限制范围的字符串。
NSNumbericSearch //按照字符串里的数字为依据,算出顺序。
NSDiacriticInsensitiveSearch //忽略 "-" 符号的比较。
NSWidthInsensitiveSearch //忽略字符串的长度,比较出结果。
NSForcedOrderingSearch //忽略不区分大小写比较的选项,并强制返回 NSOrderedAscending 或者 NSOrderedDescending.
返回值:
NSOrderedAscending //升序
NSOrderedSame //等于
NSOrderedDescending //降序
例如:
NSString *string1 = @"123";
NSString *string2 = @"234";
if ([string1 compare: string2 options:NSNumericSearch] == NSOrderedDescending){
NSLog(@"string1 > string2");
}else{
NSLog(@"string1 < string2");
}