在Java中,我们总是被提醒使用myString.isEmpty()
来检查字符串是否为空。但是,在Kotlin中,我发现您可以使用myString == ""
或myString.isEmpty()
,甚至可以使用myString.isBlank()
。
在这方面是否有任何指导方针/建议?还是简单地说“任何东西都会动摇你的船”?
提前谢谢你满足我的好奇心。:D
发布于 2017-07-26 20:41:19
不要使用myString == ""
,在java中,这将是myString.equals("")
,这也是不推荐的。
isBlank
与isEmpty
不一样,它实际上取决于您的用例。
isBlank
检查一个字符序列是否有0长度,或者所有索引都是空白。isEmpty
只检查字符序列长度是否为0。
/**
* Returns `true` if this string is empty or consists solely of whitespace characters.
*/
public fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitespace() }
/**
* Returns `true` if this char sequence is empty (contains no characters).
*/
@kotlin.internal.InlineOnly
public inline fun CharSequence.isEmpty(): Boolean = length == 0
发布于 2017-07-26 21:07:55
对于String?
(可空字符串)数据类型,我使用.isNullOrBlank()
对于String
,我使用.isBlank()
为什么?因为大多数情况下,我不希望允许字符串带有空格( .isBlank()
检查空白和空字符串)。如果您不关心空格,那么分别使用.isNullorEmpty()
和.isEmpty()
来表示String?
和String
。
发布于 2017-07-26 20:42:17
如果要测试字符串是否完全等于空字符串isEmpty
,请使用""
。
当您想测试字符串是否为空或仅由空白(""
," "
)组成时,请使用""
。
避免使用== ""
。
https://stackoverflow.com/questions/45336954
复制相似问题