iOS开发_Objective-C_字符串操作
一、 NSString
1. - substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
1 NSString *string1 = @"This is a string"; 2 NSString *string2 = [string1 substringToIndex:3]; 3 NSLog(@"string2:%@",string2);
2. - substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
1 NSString *string1 = @"This is a string"; 2 NSString *string2 = [string1 substringFromIndex:3]; 3 NSLog(@"string2:%@",string2);
3. - substringWithRange: 按照所给出的位置,长度,任意地从字符串中截取子串
1 NSString *string1 = @"This is a string"; 2 NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)]; 3 NSLog(@"string2:%@",string2);
4. - stringByReplacingOccurrencesOfString: 替换字符串中的子字符串为给定的字符串
1 NSString *str = @“Hello World”; 2 NSString * newStr = [str stringByReplacingOccurrencesOfString: @"l" withString: @"b"];
5. - compare: 比较两个字符串的大小, 大于 返回1 相等返回0 小于返回-1
1 NSString *str1 = @"Hello"; 2 NSString *str2 = @"World"; 3 BOOL result = [str1 compare:str2];
6. -caseInsensitiveCompare: 不区分大小写比较字符串
1 NSString *str1 = @"Hello,World,We,Are,The,Future"; 2 NSString *str2 = @"hello"; 3 BOOL result = [str1 caseInsensitiveCompare:str2];
7. - componentsSeparatedByString: 根据传入的字符串, 分割原字符串, 返回分割后的字符串数组
1 NSString *str1 = @"Hello,World,We,Are,The,Future"; 2 NSArray *result = [str1 componentsSeparatedByString:@","]; 3 NSLog(@"result = %@", result); 4 5 /** 6 打印: result = ( 7 Hello, 8 World, 9 We, 10 Are, 11 The, 12 Future 13 ) 14 */
8. - pathWithComponents: 通过一个数组创建一个路径字符串
1 NSArray *component = @[@"User", @"DeskTop", @"Objective-C", @"UI"]; 2 NSString *path = [NSString pathWithComponents: component]; 3 NSLog(@"path = %@", path); 4 // 打印: path = User/DeskTop/Objective-C/UI
9. - pathComponents: 将一个路径截取为数组
1 NSString *path = @"User/DeskTop/Objective-C/UI"; 2 NSArray *components = [path pathComponents]; 3 NSLog(@"components = %@", components); 4 5 /** 6 打印: 7 8 components = ( 9 User, 10 DeskTop, 11 "Objective-C", 12 UI 13 ) 14 15 */
10. - stringByDeletingLastPathComponent: 删除路径的最后一个部分
1 NSString *path = @"User/DeskTop/Objective-C/UI"; 2 NSString *result = [path stringByDeletingLastPathComponent]; 3 NSLog(@"result = %@", result); 4 // 打印: result = User/DeskTop/Objective-C
11. - stringByAppendingPathComponent: 在路径最后拼接一个组成部分
1 NSString *path = @"User/DeskTop/Objective-C/UI"; 2 NSString *result = [path stringByAppendingPathComponent:@"1.png"]; 3 NSLog(@"result = %@", result); 4 // 打印: result = User/DeskTop/Objective-C/UI/1.png
二、 NSMutableString
1. - setString: 重新设置字符串
1 [mstr setString:@"This is string AAA"];
2. - replaceCharactersInRange: 替换原字符串某范围内的字符串
1 NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"Hello"]; 2 [str1 replaceCharactersInRange:NSMakeRange(0, 1) withString:@"S"];
三、 一些使用的操作技巧
1. 移除所有非数字字符 NSString 保留空格
1 // 通过创建您想保留,并且使用的字符的字符集来轻松地完成 invertedSet 创建"所有其他"设置。然后将字符串拆分为数组由这一组中的任何字符分隔,并再重新组装该字符串。听起来复杂,但很简单 2 NSCharacterSet *setToRemove = [[ NSCharacterSet characterSetWithCharactersInString:@"0123456789 "] invertedSet ]; 3 4 NSString *newString = [[someString componentsSeparatedByCharactersInSet:setToRemove] componentsJoinedByString:@""];
常见的NSString方法
+(id)stringWithContentsOfFile:path encoding:enc error:err
创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中的错误。
+(id)stringWithContentsOfURL:url encoding:enc error:err
床架一个新字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误。
+(id)string 创建一个新的空字符串。
+(id)stringWithString:nsstring 创建一个新字符串,并将其设置为nsstring
- (id)initWithString:nsstring 将新分配的字符串设置为nsstring
- (id)initWithContentsOfFile:path encoding:enc error:err
将字符串设置为path指定的文件的内容
- (id) initWithContentsOfURL:url encoding;enc error:err
将字符串设置为url(NSURL*)url的内容,使用字符编码enc,如果非零,则返回err中的错误。
- (UNSIgned int)lengtn 返回字符串中字符数目
- (unichar) characterAtIndex:i 返回索引i的Unicode字符
- (NSString*)substringFromIndex:i 返回从i开始直到结尾的字符串
- (NSString*)substringToIndex:i 返回从该字符串开始位置到索引i的子字符串
- (NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写
- (NSComparator *)compare:nsstring 比较两个字符串
- (BOOL)hasPrefix:nsstring 测试字符串是否以nsstring开始
- (BOOL)isEqualToString:nsstring 测试两个字符串是否相等。
- (NSString*)capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)
- (NSString *)lowercaseString 返回转换为小写的字符串
- (NSString *)uppercaseString 返回抓换为大写的字符串
- (const char *)UTF8String 返回转换为UTF8字符串的字符串
- (double) doubleValue 返回转换为NSInteger整数的字符串
- (int)intValue 返回转换为整数的字符串
NSMutableString字符方法
+(id)stringWithCapacity:size 创建一个字符串,初始包含size的字符
- (id)initWithCapacity:size 使用初始容量为size的字符来初始化字符串
- (void)setString :nsstring 将字符串设置为nsstring
- (void) appendString:nsstring 在接受者的末尾附加nsstring
- (void)deleteCharactersInrange:range 删除指定range中的字符
- (void)insertString:nsstring atIndex:i以索引i为起始位置插入nsstring
- (void) replaceCharactersInrange: range withString:nsstring 使用nsstring替换range指定的字符
- (void)replaceOccurrencesOf String:nsstring withString:nsstring2 options:opts range:range
根据选项opts,使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾开始搜索),NSAn冲热点Search(nsstring必须匹配范围的开始),NSLiteralSearch