Sir*_*tty 44 cocoa whitespace trim nsstring
(已搜索过,但无法在此处或在Cocoa文档中找到这个的简单解决方案)
问:如何仅从NSString中修剪所有前导空格?(即保留其他任何空格.)
不幸的是,出于我的目的,NSString的stringByTrimmingCharactersInSet方法适用于前导和尾随.
需要Mac OS X 10.4兼容性,手动GC.
Joh*_*lin 68
这将创建一个NSString类别来执行您需要的操作.有了这个,你可以调用NSString *newString = [mystring stringByTrimmingLeadingWhitespace];一个副本减去前导空格.(代码未经测试,可能需要一些小的调试.)
@interface NSString (trimLeadingWhitespace)
-(NSString*)stringByTrimmingLeadingWhitespace;
@end
@implementation NSString (trimLeadingWhitespace)
-(NSString*)stringByTrimmingLeadingWhitespace {
NSInteger i = 0;
while ((i < [self length])
&& [[NSCharacterSet whitespaceCharacterSet] characterIsMember:[self characterAtIndex:i]]) {
i++;
}
return [self substringFromIndex:i];
}
@end
Run Code Online (Sandbox Code Playgroud)
Hej*_*azi 49
这是使用正则表达式的另一种解决方案(需要iOS 3.2):
NSRange range = [string rangeOfString:@"^\\s*" options:NSRegularExpressionSearch];
NSString *result = [string stringByReplacingCharactersInRange:range withString:@""];
Run Code Online (Sandbox Code Playgroud)
如果你想修剪尾随的空格,你只能使用它@"\\s*$".
ayb*_*ars 36
这段代码正在变成空白.
NSString *trimmedText = [strResult stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSLog(@"%@",trimmedText);
Yos*_*uri 25
这是一个非常有效(使用CoreFoundation)的方法(取自kissxml):
- (NSString *)trimWhitespace {
NSMutableString *mStr = [self mutableCopy];
CFStringTrimWhitespace((CFMutableStringRef)mStr);
NSString *result = [mStr copy];
[mStr release];
return [result autorelease];
}
Run Code Online (Sandbox Code Playgroud)
Ram*_*esh 21
NSString *myText = @" foo ";
NSString *trimmedText = [myText stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSLog(@"old = [%@], trimmed = [%@]", myText, trimmedText);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40094 次 |
| 最近记录: |