Удаление нескольких пространств в NSString
У меня есть NSString
, у этого есть несколько пробелов, я хочу обрезать эти пробелы и сделать единое пространство, например, @ "как..............." в @ "как вы". (точки просто пробелы)
Я пробовал с
NSString *trimmedString = [user_ids stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
Кажется, что это не работает. Любая идея.
Ответы
Ответ 1
Для выполнения этого можно использовать регулярное выражение:
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@" +" options:NSRegularExpressionCaseInsensitive error:&error];
Шаблон - это пробел, за которым следует одно или несколько вхождений пространства. Замените это одним пространством в строке:
NSString *trimmedString = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [user_ids length]) withTemplate:@" "];
Ответ 2
Это сработало, когда я попробовал:
NSString *trimmedString = @"THIS IS A TEST S STRING S D D F ";
while ([trimmedString rangeOfString:@" "].location != NSNotFound) {
trimmedString = [trimmedString stringByReplacingOccurrencesOfString:@" " withString:@" "];
}
NSLog(@"%@", trimmedString);
Ответ 3
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:@" "];
Ответ 4
Swift 3 код выбранного ответа
let regex = try? NSRegularExpression(pattern: " +", options: .caseInsensitive)
let trimmedString: String? = regex?.stringByReplacingMatches(in: user_ids, options: [], range: NSRange(location: 0, length: user_ids.characters.count), withTemplate: " ")
Ответ 5
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\s{2,}+" options:NSRegularExpressionCaseInsensitive error:&error];
user_ids = [regex stringByReplacingMatchesInString:user_ids options:0 range:NSMakeRange(0, [s length]) withTemplate:@" "];
Ответ 6
NSString* NSStringWithoutSpace(NSString* string)
{
return [string stringByReplacingOccurrencesOfString:@" " withString:@""];
}
Ответ 7
вы можете использовать:
NSString *trimmedString = [user_ids stringByReplacingOccurrencesOfString: @" " withString:@""];