NSString *myString = @"A B C D E F G";
Chcę usunąć spacje, więc nowy ciąg byłby „ABCDEFG”.
Odpowiedzi:
Możesz użyć:
NSString *stringWithoutSpaces = [myString
stringByReplacingOccurrencesOfString:@" " withString:@""];
Jeśli chcesz obsługiwać więcej niż jedną spację naraz lub dowolną białą spację, możesz to zrobić:
NSString* noSpaces =
[[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
componentsJoinedByString:@""];
A B C D E F
.
Zaczerpnięte z NSString
stringByReplacingOccurrencesOfString:withString:
Zwraca nowy ciąg, w którym wszystkie wystąpienia ciągu docelowego w odbiorniku są zastępowane innym podanym ciągiem.
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
Parametry
cel
The string to replace.
zastąpienie
The string with which to replace target.
Wartość zwracana
Nowy ciąg, w którym wszystkie wystąpienia celu w odbiorniku są zastępowane przez zastąpienie.
Wszystko powyżej będzie działać dobrze. Ale właściwa metoda jest taka:
yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Będzie działać jak metoda TRIM. Usunie wszystkie przestrzenie z przodu iz tyłu.
Dzięki
[NSCharacterSet whitespaceCharacterSet]
i [NSCharacterSet whitespaceAndNewlineCharacterSet]
.
jeśli ciąg jest zmienny , możesz go przekształcić w miejscu za pomocą tego formularza:
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];
jest to również przydatne, jeśli chcesz, aby wynik był mutowalną instancją ciągu wejściowego:
NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];
Możesz tego spróbować
- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
while ([str rangeOfString:@" "].location != NSNotFound) {
str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
}
return str;
}
Mam nadzieję, że to ci pomoże.