23

私はNSString、これには複数のスペースがあります。これらのスペースをトリミングして、eg @ "how ..... are.......you"を@"howare you"に1つのスペースにします。(ドット単なるスペースです)

私はで試しました

NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];

うまくいかないようです。何か案が。

4

8 に答える 8

47

これを行うには、正規表現を使用できます。

NSError *error = nil;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"  +" options:NSRegularExpressionCaseInsensitive error:&error];

パターンは、スペースの後に 1 つ以上のスペースが続きます。これを文字列内の単一のスペースに置き換えます。

NSString *trimmedString = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [user_ids length]) withTemplate:@" "];
于 2012-08-27T06:27:55.290 に答える
12

これは私が試したときにうまくいきました:

NSString *trimmedString = @"THIS      IS      A     TEST S    STRING   S D        D F ";
    while ([trimmedString rangeOfString:@"  "].location != NSNotFound) {
        trimmedString = [trimmedString stringByReplacingOccurrencesOfString:@"  " withString:@" "];
    }
NSLog(@"%@", trimmedString);
于 2012-08-27T07:02:18.463 に答える
11

user1587011

NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet:
                           [NSCharacterSet whitespaceCharacterSet]];

この文字列メソッドは、文字列の最初と最後のスペースを削除するために使用されます。

これを試してみてくださいそれはあなたが望むものをあなたに与えます:-

NSString *theString = @"    Hello      this  is a   long       string!   ";

NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];

NSArray *parts = [theString componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
theString = [filteredArray componentsJoinedByString:@" "];
于 2012-08-27T06:24:41.533 に答える
-3

使用できます:

NSString *trimmedString = [user_ids stringByReplacingOccurrencesOfString: @" " withString:@""];
于 2012-08-27T06:16:07.343 に答える