如何确定 Groovy 中的字符串是否为非空且不仅仅是空格?

问题描述 投票:0回答:4

Groovy 将

isAllWhitespace()
方法添加到字符串中,这很棒,但似乎没有一种的方法来确定字符串中是否有除只是空白以外的内容。

我能想到的最好的办法是:

myString && !myString.allWhitespace

但这似乎太冗长了。这对于验证来说似乎是很常见的事情,因此必须有一种更简单的方法来确定这一点。

string groovy whitespace
4个回答
338
投票

另一种选择是

if (myString?.trim()) {
  ...
}

(使用 Groovy Truth for Strings


10
投票

您可以向 String 添加一个方法以使其更具语义:

String.metaClass.getNotBlank = { !delegate.allWhitespace }

你可以这样做:

groovy:000> foo = ''
===> 
groovy:000> foo.notBlank
===> false
groovy:000> foo = 'foo'
===> foo
groovy:000> foo.notBlank
===> true

5
投票

它在我的项目中与 grails2.1 一起工作:

String str = someObj.getSomeStr()?.trim() ?: "Default value"

如果 someObj.getSomeStr() 为 null 或空 "" -> str = "默认值"
如果 someObj.getSomeStr() = "someValue" -> str = "someValue"


2
投票

我发现这种方法快速且用途广泛:

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
类型的实际扩展方法,而且效果很好,我没有费心去看。

© www.soinside.com 2019 - 2024. All rights reserved.