去空格 whitespaceAndNewlineCharacterSet和过滤字符串
Posted 超神船长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了去空格 whitespaceAndNewlineCharacterSet和过滤字符串相关的知识,希望对你有一定的参考价值。
一、过滤字符串
可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号
首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"@/:;()¥「」"、[]{}#%-*+=_//|~<>$€^?‘@#$%^&*()_+‘/"""]; 由于NSString中有全角符号和半角符号, 因此有些符号要包括全角和半角的 然后调用stringByTrimmingCharactersInSet NSString *trimmedString = [string stringByTrimmingCharactersInSet:set]; trimmedString就是过滤后的字符串
二、去除空格
1.去掉两端的空格
1 [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]
2.去掉多余的空格
1 NSString *str = @" this is a test . "; 2 3 NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet]; 4 NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ‘‘"]; 5 6 NSArray *parts = [str componentsSeparatedByCharactersInSet:whitespaces]; 7 NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings]; 8 str = [filteredArray componentsJoinedByString:@" "];
3.去掉所有空格
1 [str stringByReplacingOccurrencesOfString:@" " withString:@""]
4.去掉最左边的空格 和 去掉最右边的空格
@interface NSString (TrimmingAdditions) - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet ; - (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet ; @end @implementation NSString (TrimmingAdditions) - (NSString *)stringByTrimmingLeftCharactersInSet:(NSCharacterSet *)characterSet { NSUInteger location = 0; NSUInteger length = [self length]; unichar charBuffer[length]; [self getCharacters:charBuffer]; for (location; location < length; location++) { if (![characterSet characterIsMember:charBuffer[location]]) { break; } } return [self substringWithRange:NSMakeRange(location, length - location)]; } - (NSString *)stringByTrimmingRightCharactersInSet:(NSCharacterSet *)characterSet { NSUInteger location = 0; NSUInteger length = [self length]; unichar charBuffer[length]; [self getCharacters:charBuffer]; for (length; length > 0; length--) { if (![characterSet characterIsMember:charBuffer[length - 1]]) { break; } } return [self substringWithRange:NSMakeRange(location, length - location)]; } @end
例如:NSLog(@"%@",[@"abc 123 " stringByTrimmingRightCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]);
:NSLog(@"%@",[@"0.012300" stringByTrimmingRightCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"0"]]);
以上是关于去空格 whitespaceAndNewlineCharacterSet和过滤字符串的主要内容,如果未能解决你的问题,请参考以下文章