W celu C można wykonać następujące czynności, aby sprawdzić ciągi:
if ([myString isEqualToString:@""]) {
NSLog(@"myString IS empty!");
} else {
NSLog(@"myString IS NOT empty, it is: %@", myString);
}
Jak można wykryć puste ciągi w języku Swift?
Odpowiedzi:
Istnieje teraz wbudowana możliwość wykrywania pustego ciągu za pomocą
.isEmpty
:Dokumentacja Apple w wersji wstępnej: „Ciągi znaków i znaki” .
źródło
Zwięzły sposób sprawdzenia, czy łańcuch jest zerowy lub pusty, to:
źródło
if let myString = myString where !myString.isEmpty { ... }
Całkowicie przepisuję swoją odpowiedź ( ponownie ). Tym razem to dlatego, że stałem się fanem
guard
wypowiedzi i wczesnego powrotu . To sprawia, że kod jest znacznie czystszy.Ciąg nieopcjonalny
Sprawdź długość zerową.
Jeśli
if
instrukcja przejdzie pomyślnie, możesz bezpiecznie użyć ciągu, wiedząc, że nie jest on pusty. Jeśli jest pusty, funkcja wróci wcześniej i nic nie będzie miało znaczenia.Opcjonalny ciąg
Sprawdź długość zerową lub zerową.
Spowoduje to rozpakowanie opcjonalnego i sprawdzenie, czy nie jest on jednocześnie pusty. Po przekazaniu
guard
instrukcji możesz bezpiecznie użyć nieopakowanego niepustego ciągu.źródło
W Xcode 11.3 swift 5.2 i nowszych
Posługiwać się
Przykład
Jeśli chcesz zignorować spacje
źródło
Oto jak sprawdzam, czy ciąg jest pusty. Przez „pusty” rozumiem ciąg, który jest albo pusty, albo zawiera tylko znaki spacji / nowej linii.
Jak używać:
źródło
Możesz także użyć opcjonalnego rozszerzenia, aby nie martwić się o rozpakowywanie lub używanie
== true
:Uwaga: wywołując to jako opcjonalne, upewnij się, że nie używasz,
?
bo w przeciwnym razie nadal będzie wymagało rozpakowania.źródło
optionalString?isBlank
, należy go rozpakować.currentIncident.priority?.description.isBlank
. Mówi:Value of optional type 'Bool?' not unwrapped; did you mean to use '!' or '?'?
. Muszę zrobić,(currentIncident.priority?.description ?? "").isBlank
co sprawia, że rozszerzenia są trochę bezcelowe. Swift 4.1.priority
jest to opcja. Gdybydescription
było opcjonalne, zadziałałoby, ale nie można obejść tego, że obiekt nadrzędny jest opcjonalny w ten sposób (ponieważ jeślipriority
jest nil, to nie ma nawetdescription
właściwości sprawdzającej, czy nie ma pustości).Aby wykonać zerową kontrolę i długość jednocześnie, Swift 2.0 i iOS 9 i nowsze wersje, możesz użyć
źródło
isEmpty zrobi to, co myślisz, że jeśli string == "", zwróci wartość true. Niektóre inne odpowiedzi wskazują na sytuację, w której masz opcjonalny ciąg.
PROSZĘ użyj opcjonalnego łączenia !!!!
Jeśli ciąg nie jest nil, zostanie użyty isEmpty, w przeciwnym razie nie.
Poniżej opcjonalny ciąg NIE zostanie ustawiony, ponieważ ciąg jest zerowy
Oczywiście nie użyłbyś powyższego kodu. Zyski pochodzą z analizowania JSON lub innych takich sytuacji, w których albo masz wartość, albo nie. Gwarantuje to, że kod zostanie uruchomiony, jeśli istnieje wartość.
źródło
Sprawdź, czy w tekście nie ma tylko spacji i znaków nowej linii
za pomocą
źródło
W przypadku opcjonalnych ciągów, co powiesz na:
źródło
źródło
Co powiesz na
źródło
Mogę polecić dodanie małego rozszerzenia do String lub Array, które wygląda jak
Dzięki niemu możesz napisać kod, który jest łatwiejszy do odczytania. Porównaj te dwie linie
i
Łatwo go przegapić ! zarejestruj się na początku pierwszej linii.
źródło
Możesz użyć tego rozszerzenia:
a następnie użyj tego w ten sposób:
źródło