Groovy 将
isAllWhitespace()
方法添加到字符串中,这很棒,但似乎没有一种好的方法来确定字符串中是否有除只是空白以外的内容。
我能想到的最好的办法是:
myString && !myString.allWhitespace
但这似乎太冗长了。这对于验证来说似乎是很常见的事情,因此必须有一种更简单的方法来确定这一点。
您可以向 String 添加一个方法以使其更具语义:
String.metaClass.getNotBlank = { !delegate.allWhitespace }
你可以这样做:
groovy:000> foo = ''
===>
groovy:000> foo.notBlank
===> false
groovy:000> foo = 'foo'
===> foo
groovy:000> foo.notBlank
===> true
它在我的项目中与 grails2.1 一起工作:
String str = someObj.getSomeStr()?.trim() ?: "Default value"
如果 someObj.getSomeStr() 为 null 或空 "" -> str = "默认值"
如果 someObj.getSomeStr() = "someValue" -> str = "someValue"
我发现这种方法快速且用途广泛:
static boolean isNullOrEmpty(String str) { return (str == null || str.allWhitespace) }
// Then I often use it in this manner
DEF_LOG_PATH = '/my/default/path'
logPath = isNullOrEmpty(log_path) ? DEF_LOG_PATH : log_path
不过,我对使用 Groovy 还很陌生,所以我不确定是否存在一种方法可以使其成为
String
类型的实际扩展方法,而且效果很好,我没有费心去看。