<IOS>NSString字符串处理简单总结
NSString字符串处理简单总结
转载:http://www.wangdg.com/?p=123
连接字符串
- NSArray *strings = ... ;
- string = [strings componentsJoinedByString: @" :-) "];
- // 结果:string1:-)string2:-)......
分割字符串
- NSString *string = @"string1:string2:string3:string4:string5";
- NSArray *chunks = [string componentsSeparatedByString: @":"];
转成数值
- NSString *string = ...;int intValue = [string intValue]; // int数值
- float floatValue = [string floatValue]; // float数值
- double doubleValue = [string doubleValue]; // double数值
从字符串中去除换行
- 可以使用上面提到的分割字符串,然后再将它们连接起来。但是采用下面的方式更好一些。
- NSMutableString *mstring = [NSMutableString stringWithString:string];
- NSRange wholeShebang = NSMakeRange(0, [mstring length]);
- [mstring replaceOccurrencesOfString: @"" withString: @"" options: 0 range: wholeShebang];
这个方法也可以用来替换字符串。这种方法比分割/连接字符串的方法稍微快一点儿,但不是很明显。处理长度1500000的字符串,当中有36909个换行,分割/连接的方法要0.124秒,这个方法要0.071秒。
取得子字符串
- NSRange range = [[string name] rangeOfString: otherString options: NSCaseInsensitiveSearch];
取得当前日期的字符串
- 通常将Date转化成NSString的方法是使用NSDateFormatter,但有时候可以使用特殊方法更简单的进行转化。比如想得到:“December 4, 2007”
- [[NSDate date] descriptionWithCalendarFormat: @"%B %e, %Y" timeZone: nil locale: nil]
Trim一个NSString
- NSString *ook = @"\n \t\t hello there \t\n \n\n";
- NSString *trimmed = [ook stringByTrimmingCharactersInSet:
- [NSCharacterSet whitespaceAndNewlineCharacterSet]];
- // 结果是hello there
按行处理一个字符串
如果一个本文文体,每一行是一条数据,想循环处理每一条数据要怎么做简单呢。看下面的例子:
- NSMutableArray *altitudes = [NSMutableArray array];
- NSString *altitudeString = [self altitudeStringFromGoogle: coords];
- [altitudeString enumerateLinesUsingBlock: ^(NSString *line, BOOL *stop) {
- float value = [line floatValue];
- [altitudes addObject: [NSNumber numberWithFloat: value]];
- }];
将字符串放在剪贴板上的方法
- @implementation NSString (PasteboardGoodies)
- - (void) sendToPasteboard
- {
- [[NSPasteboard generalPasteboard]
- declareTypes: [NSArray arrayWithObject: NSStringPboardType]
- owner:nil];
- [[NSPasteboard generalPasteboard]
- setString: self forType: NSStringPboardType];
- }
- // sendToPasteboard@end // PasteboardGoodies

浙公网安备 33010602011771号