У меня строка: "Allentown, pa"
Как удалить пробел между ,
и pa
с помощью объектного c?
У меня строка: "Allentown, pa"
Как удалить пробел между ,
и pa
с помощью объектного c?
Это приведет к удалению всего пробела из myString
.
NSString *newString = [myString stringByReplacingOccurrencesOfString:@" " withString:@""];
Вот правильный и документированный способ удаления пробелов из вашей строки.
whitespaceCharacterSet Apple Documentation для iOS говорит:
Returns a character set containing only the in-line whitespace characters space (U+0020) and tab (U+0009).
+ (id)whitespaceCharacterSet
Return Value
A character set containing only the in-line whitespace characters space (U+0020) and tab (U+0009).
Discussion
This set doesn’t contain the newline or carriage return characters.
Availability
Available in iOS 2.0 and later.
Вы можете использовать этот документированный способ:
[yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Надеюсь, это поможет вам.
Если вам нужна дополнительная помощь, пожалуйста, сообщите мне об этом.
Возможно, решение в одном из ответов Свернуть последовательности белого пространства в один символ и обрезать строку:
NSString *whitespaceString = @" String with whitespaces ";
NSString *trimmedString = [whitespaceString stringByReplacingOccurrencesOfString:@" " withString:@""];
Если вы хотите использовать символ "белый" и "новый", используйте " whitespaceAndNewlineCharacterSet" вместо " whitespaceCharacterSet"
NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet];
NSString *trimmedString = [temp.text stringByTrimmingCharactersInSet:whitespace];
NSLog(@"Value of the text field is %@",trimmedString);
myStr = [myStr stringByReplacingOccurrencesOfString:@" " withString:@""];
В моем случае NSString было добавлено Zero Width Space (я использовал некоторую библиотеку). поэтому решение сработало для меня.
NSMutableString *newString=[[newString stringByReplacingOccurrencesOfString:@"\u200B" withString:@""] mutableCopy];
@ "\ u200B" - это значение символа Zero width space.
Вот правильный способ удаления лишних пробелов из строки, которая находится между ними.
NSString *yourString = @"Allentown, pa";
NSCharacterSet *whitespaces = [NSCharacterSet whitespaceCharacterSet];
NSPredicate *noEmptyStrings = [NSPredicate predicateWithFormat:@"SELF != ''"];
NSArray *parts = [yourString componentsSeparatedByCharactersInSet:whitespaces];
NSArray *filteredArray = [parts filteredArrayUsingPredicate:noEmptyStrings];
yourString = [filteredArray componentsJoinedByString:@" "];
вы можете использовать функцию remove для удаления любой подстроки из строки
- (NSString*)remove:(NSString*)textToRemove fromString:(NSString*)input {
return [input stringByReplacingOccurrencesOfString:textToRemove withString:@""];
}
Я пробовал все решения здесь, ни один из них не мог удалить пробелы, созданные китайским методом ввода PinYin.
После некоторой отладки я обнаружил, что это работает:
NSString *newString = [myString stringByReplacingOccurrencesOfString:@"\342\200\206" withString:@""];
У меня есть googled, что '\ 342\200\206', но не удалось.
Что бы это ни было, это работает для меня.
NSString *sample = @" string with whitespaces";
NSString *escapeWhiteSpaces = [sample stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
- (NSString *)removeWhitespaces {
return [[self componentsSeparatedByCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]]
componentsJoinedByString:@""];
}
Привет, есть быстрая версия решения с расширением:
extension String{
func deleteSpaces() -> String{
return self.stringByReplacingOccurrencesOfString(" ", withString: "")
}
}
И просто позвоните
(yourString as! String).deleteSpaces()
Swift 3:
var word: String = "Hello world"
let removeWhiteSpace = word.stringByRemovingWhitespaces
word = "Helloworld"