如何在Dart中检查字符串是否为空?

4

在Dart中如何检查字符串是否为"null"?(不是null对象)

是否有像Java的equals一样的Dart SDK API?


你的意思是要检查字符串中是否存储了字符串“null”,即如果你的字符串 == 'null'吗? - Mohammad Assad Arshad
5个回答

7

我认为 isEmpty 属性会返回 false,因为如果你的字符串为空(null),它仍然保持着一个对象并且不是空的。所以这取决于你在帖子中想表达的意思。

如果你想检查字符串是否为 'null',只需执行

if (stringVar == 'null')

如果您想检查字符串是否为空,则:

if (stringVar == null)

是的,我指的是“null”,我已经使用“==”进行了检查,做得好。 - Chunsheng Wei
出现错误:“操作数不能为空,因此条件始终为false。尝试删除条件、封闭条件或整个条件语句。” - Kamlesh

4

检查字符串是否为空:

if (s == null) {
    …
}

检查字符串是否不为空:

if (s != null) {
    …
}

如果字符串不为null,则返回该字符串,否则返回'other value':

return s ?? 'other value'

仅在字符串为null时将值分配给该字符串:

s ??= 'value'

在字符串不为null时调用其方法(属性)

s?.length

无法工作,出现错误:“操作数不能为空,因此条件始终为false。尝试删除条件、封闭条件或整个条件语句。” - Kamlesh
那是因为你正在使用带有空值安全的最新 Dart。 - madhead
感谢您的快速回复。请根据最新的Dart及其空安全功能更新您的答案。再次感谢。 - Kamlesh
如果您使用非空字符串,那么在具有声音空安全性的情况下,无需更新答案。问题所涉及的情况是不可能的。 - madhead

1

除此之外

myString == 'null'

或者

myString == null

“null”还有另一种含义:空字符。在ASCII或Unicode中,它的代码值为0。因此,您可以像这样检查此值:

myString == '\u0000'

或者

myString.codeUnits.first == 0

1
您可以使用isEmpty property
bool [string name] isEmpty;

另外,您可以这样做:

(原文保留HTML标签)
String text = "text"; 
print(text.isEmpty); 

输出:false

编辑:我认为Mohammad Assad Arshad的回答更准确。抱歉。


-1
大多数情况下,应用程序不起作用,特别是当您使用Future<String>返回类型时。
下面的代码似乎有效。 myString == "null";
myFinalString = ["", null, "null", "\"null\""].contains(myString);
print(myFinalString)
输出:
=>true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接