Wie kann ich testen, ob eine Zeichenfolge nur Leerzeichen enthält?
Beispielzeichenfolgen:
" "
(Raum, Raum, Raum)" \t \n "
(Leerzeichen, Tabulator, Leerzeichen, Zeilenumbruch, Leerzeichen)"\n\n\n\t\n"
(Newline, Newline, Newline, Tab, Newline)
Verwenden Sie die str.isspace()
Methode:
Rückgabe,
True
wenn die Zeichenfolge nur Leerzeichen enthält undFalse
andernfalls mindestens ein Zeichen .Ein Zeichen ist ein Leerzeichen, wenn in der Unicode-Zeichendatenbank (siehe Unicodedata ) entweder seine allgemeine Kategorie Zs („Separator, Leerzeichen“) oder seine bidirektionale Klasse WS, B oder S ist.
Kombinieren Sie dies mit einem Sonderfall für die Behandlung der leeren Zeichenfolge.
Alternativ können Sie verwenden str.strip()
und prüfen, ob das Ergebnis leer ist.
U+00A0
oder enthältALT+160
. Sieht jedoch in Python 2.7 behoben aus.None
, oder''
if len(str) == 0 or str.isspace():
len(my_str) == 0
kann auch geschrieben werdennot my_str
.quelle
True
zu lassenNone
?Sie möchten die
isspace()
Methode verwendenDas ist für jedes String-Objekt definiert. Hier ist ein Anwendungsbeispiel für Ihren speziellen Anwendungsfall:
quelle
Sie können die
str.isspace()
Methode verwenden.quelle
für diejenigen, die ein Verhalten wie den Apache StringUtils.isBlank oder Guava Strings.isNullOrEmpty erwarten :
quelle
Überprüfen Sie die Länge der Liste mit der Methode split ().
Oder Vergleichen Sie die Ausgabe der strip () -Methode mit null.
quelle
len()
arbeitet an Zeichenfolgen. Außerdem bat das OP nicht darum, nach der leeren Zeichenfolge zu testen, sondern nach einer Zeichenfolge, die nur aus Leerzeichen bestand. Ihre zweite Methode ist jedoch nicht schlecht. Außerdem werden Ihre Parens, die die Bedingung umgeben, in Python nicht benötigt.==0
mit==1
if len(your_string.split())==0:
->if not your_string.split():
,if your_string.strip() == '':
->if not your_string.strip():
. In jedem Fall ist die erste den vorhandenen Lösungen unterlegen, und die zweite wurde bereits in anderen Antworten erwähnt.Hier ist eine Antwort, die in allen Fällen funktionieren sollte:
Wenn die Variable None ist, stoppt sie bei
not s
und wird (seitnot None == True
) nicht weiter ausgewertet . Anscheinendstrip()
kümmert sich die Methode um die üblichen Fälle von Tabulatoren, Zeilenumbrüchen usw.quelle
not None == True
es wohl klarer nur zu sagenNone is False
. Sollte auch==
nicht für diese Vergleiche verwendet werden.Ich gehe in Ihrem Szenario davon aus, dass eine leere Zeichenfolge eine Zeichenfolge ist, die wirklich leer ist oder die alle Leerzeichen enthält.
Beachten Sie, dass dies nicht überprüft wird
None
quelle
Ich habe folgendes verwendet:
quelle
None
?Um zu überprüfen, ob eine Zeichenfolge nur ein Leerzeichen oder eine neue Zeile ist
Verwenden Sie diesen einfachen Code
quelle
Ähnlichkeit mit der statischen Methode c # string isNullOrWhiteSpace.
quelle
return (str is None) or (str == "") or (str.isspace())
None
und""
sind falsch, also können Sie einfach:return not str or str.isspace()