Wie kann ich testen, ob der String in Python leer ist?
Zum Beispiel,
"<space><space><space>"
ist leer, so ist
"<space><tab><space><newline><space>"
, so ist es
"<newline><newline><newline><tab><newline>"
, usw.
yourString.isspace()
"Gibt true zurück, wenn die Zeichenfolge nur Leerzeichen enthält und mindestens ein Zeichen, andernfalls false."
Kombinieren Sie dies mit einem Sonderfall für die Behandlung der leeren Zeichenfolge.
Alternativ könnten Sie verwenden
strippedString = yourString.strip()
Überprüfen Sie dann, ob strippedString leer ist.
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
Sie möchten die isspace()
-Methode verwenden
str. isspace ()
Gibt true zurück, wenn die Zeichenfolge nur Leerzeichen enthält und mindestens ein Zeichen, andernfalls false.
Das ist für jedes String-Objekt definiert. Hier ist es ein Anwendungsbeispiel für Ihren speziellen Anwendungsfall:
if aStr and (not aStr.isspace()):
print aStr
für diejenigen, die ein Verhalten wie den Apachen erwarten StringUtils.isBlank oder Guave Strings.isNullOrEmpty :
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
Überprüfen Sie die Länge der Liste der split () -Methode.
if len(your_string.split()==0:
print("yes")
Oder Vergleichen Sie die Ausgabe der strip () -Methode mit null.
if your_string.strip() == '':
print("yes")
Hier ist eine Antwort, die in allen Fällen funktionieren sollte:
def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
Wenn die Variable None ist, stoppt sie bei not s
Und wird nicht weiter ausgewertet (seit not None == True
). Anscheinend kümmert sich die strip()
-Methode um die üblichen Fälle von Tab, Newline usw.
Ich gehe davon aus, dass in Ihrem Szenario eine leere Zeichenfolge eine Zeichenfolge ist, die wirklich leer ist oder die nur Leerzeichen enthält.
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
Beachten Sie, dass dies nicht nach None
sucht.
So überprüfen Sie, ob es sich bei einer Zeichenfolge nur um ein Leerzeichen oder eine neue Zeile handelt
Verwenden Sie diesen einfachen Code
mystr = " \n \r \t "
if not mystr.strip(): # The String Is Only Spaces!
print("\n[!] Invalid String !!!")
exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)
Ich habe folgendes benutzt:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
Ähnlichkeit mit der statischen Methode c # string istNullOrWhiteSpace.
def isNullOrWhiteSpace(str):
"""Indicates whether the specified string is null or empty string.
Returns: True if the str parameter is null, an empty string ("") or contains
whitespace. Returns false otherwise."""
if (str is None) or (str == "") or (str.isspace()):
return True
return False
isNullOrWhiteSpace(None) -> True // None equals null in c#, Java, php
isNullOrWhiteSpace("") -> True
isNullOrWhiteSpace(" ") -> True