Próbowałem pozbyć się białych spacji w pliku NSString
, ale żadna z metod, które wypróbowałem, nie zadziałała.
Mam "this is a test"
i chcę dostać "thisisatest"
.
Użyłem whitespaceCharacterSet
, co ma wyeliminować białe spacje.
NSString *search = [searchbar.text stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceCharacterSet]];
ale otrzymywałem ten sam ciąg ze spacjami. Jakieś pomysły?
objective-c
string
cocoa
nsstring
marsalal1014
źródło
źródło
Odpowiedzi:
stringByTrimmingCharactersInSet
usuwa tylko znaki z początku i końca ciągu, a nie te ze środka.1) Jeśli chcesz usunąć tylko dany znak (np. Spację) ze swojego ciągu, użyj:
2) Jeśli naprawdę potrzebujesz usunąć zestaw znaków (a mianowicie nie tylko znak spacji, ale wszelkie białe znaki, takie jak spacja, tabulator, nierozerwalna spacja itp.), Możesz podzielić swój ciąg, używając
whitespaceCharacterSet
następnie ponownie łącząc słowa w jeden ciąg :Zauważ, że to ostatnie rozwiązanie ma tę zaletę, że obsługuje wszystkie białe znaki, a nie tylko spacje, ale jest nieco mniej wydajne niż
stringByReplacingOccurrencesOfString:withString:
. Więc jeśli naprawdę potrzebujesz tylko usunąć znak spacji i jesteś pewien, że nie będziesz mieć żadnego innego białego znaku niż zwykły znak spacji, użyj pierwszej metody.źródło
Wolę używać wyrażeń regularnych w ten sposób:
Możesz stworzyć sobie kategorię w NSString, aby życie było jeszcze łatwiejsze:
}
Oto również metoda testów jednostkowych:
źródło
Łatwe zadanie w użyciu
stringByReplacingOccurrencesOfString
źródło
Może ci to pomóc, jeśli
\u00a0
zamiast(białe spacje). Miałem ten problem, gdy próbowałem wyodrębnić kontaktowe numery telefonów urządzenia. Musiałem zmodyfikować ciąg phoneNumber, aby nie zawierał spacji.
Kiedy
yourString
był obecny numer telefonu.źródło
yourString.replacingOccurrences(of: "\u{00a0}", with: "")
stringByReplacingOccurrencesOfString zastąpi wszystkie białe znaki w ciągu nie tylko początkiem i końcem
Posługiwać się
źródło
stringByReplacingOccurrencesOfString
ale podaj przykładstringByTrimmingCharactersInSet
?źródło
To dla mnie najlepszy sposób SWIFT
a wynik to: ciaociao
Ale sztuczka jest taka!
źródło
Użyj poniżej marco i usuń spację.
w innym pliku wywołanie TRIM:
Niech ci pomoże ...
źródło
To jest do usuwania spacji, która pojawia się podczas pobierania tekstu z dowolnego pola tekstowego, ale jeśli chcesz usunąć spację między ciągiem, możesz użyć
Zastąpi puste miejsce bez spacji, a puste pole jest obsługiwane następującą metodą:
źródło
źródło
Zdecydowanie sugeruję umieszczenie tego gdzieś w swoim projekcie:
źródło