如何在Python中测试字符串是否为空?
例如,
"<space><space><space>"
为空,
"<space><tab><space><newline><space>"
,
"<newline><newline><newline><tab><newline>"
等
答案 0 :(得分:256)
yourString.isspace()
“如果字符串中只有空格字符并且至少有一个字符,则返回true,否则返回false。”
将其与处理空字符串的特殊情况相结合。
或者,您可以使用
strippedString = yourString.strip()
然后检查strippedString是否为空。
答案 1 :(得分:45)
>>> tests = ['foo', ' ', '\r\n\t', '', None]
>>> [bool(not s or s.isspace()) for s in tests]
[False, True, True, True, True]
>>>
答案 2 :(得分:24)
答案 3 :(得分:24)
您想使用isspace()
方法
海峡的 isspace为()强>
如果字符串中只有空格字符,则返回true 至少有一个角色,否则就是假。
在每个字符串对象上定义。这是您特定用例的用法示例:
if aStr and (not aStr.isspace()):
print aStr
答案 4 :(得分:11)
对于那些期望像apache StringUtils.isBlank或Guava Strings.isNullOrEmpty这样的行为的人:
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
答案 5 :(得分:5)
检查split()方法给出的列表长度。
if len(your_string.split()==0:
print("yes")
或者 将strip()方法的输出与null进行比较。
if your_string.strip() == '':
print("yes")
答案 6 :(得分:3)
这是一个应该适用于所有情况的答案:
//Create new table and set columns and widths for Report Items
PdfPTable itemTable = new PdfPTable(4);
//Loop each row in the dataset and output
for (int i = 0; i < repDT.Rows.Count; i += 3)
{
float[] ITWidths = new float[] { 10f, 20f, 10f, 60f }; //4 columns by size (f) for list of multi-items on report
itemTable.SetWidths(ITWidths);
PdfPCell datesvalues = new PdfPCell(new Phrase("" + repDT.Rows[i]["OLDDATE"] + "\n" + Convert.ToDateTime(repDT.Rows[i]["INSDATE"]).ToString("dd/MM/yyyy") + "\n" + Convert.ToDateTime(repDT.Rows[i]["NEXT DATE"]).ToString("dd/MM/yyy") + "\n" + repDT.Rows[i]["CONT FREQ"].ToString() + " months", smalltext));
itemTable.AddCell(datesvalues);
PdfPCell itemdetails = new PdfPCell(new Phrase("1. " + repDT.Rows[i]["DESC"] + "\n" + "2. " + repDT.Rows[i]["PLANTNUMBER"] + "\n" + "3. " + repDT.Rows[i]["SERIALNUMBER"] + "\n" + "4. " + repDT.Rows[i]["SUBLOC"].ToString(), smalltext));
itemTable.AddCell(itemdetails);
PdfPCell swl = new PdfPCell(new Phrase("" + repDT.Rows[i]["SWL"], smalltext));
itemTable.AddCell(swl);
PdfPCell defects = new PdfPCell(new Phrase("A. " + repDT.Rows[i]["ADEFECT"] + "\n" + "B. " + repDT.Rows[i]["BDEFECT"] + "\n" + "C. " + repDT.Rows[i]["OBS"] + "\n" + "" + repDT.Rows[i]["SPARE1"].ToString(), smalltext));
itemTable.AddCell(defects);
document.NewPage();
}
document.Add(itemTable);
如果变量为None,它将停在def is_empty(s):
"Check whether a string is empty"
return not s or not s.strip()
并且不再进一步评估(从not s
开始)。显然,not None == True
方法会处理tab,换行符等常见情况。
答案 7 :(得分:2)
我假设您的场景中,空字符串是一个真正空的字符串或包含所有空格的字符串。
if(str.strip()):
print("string is not empty")
else:
print("string is empty")
请注意,这不会检查None
答案 8 :(得分:1)
我使用了以下内容:
if str and not str.isspace():
print('not null and not empty nor whitespace')
else:
print('null or empty or whitespace')
答案 9 :(得分:1)
检查字符串是否只是空格或换行符
使用此简单代码
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)
答案 10 :(得分:0)
类似于c#字符串静态方法isNullOrWhiteSpace。
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