Groovy의 공백뿐만 아니라 문자열이 null이 아닌지 어떻게 확인할 수 있습니까?


128

Groovy는 isAllWhitespace()Strings에 메서드를 추가합니다 . 이것은 훌륭하지만 String에 다른 것이 있는지 확인 하는 좋은 방법 은없는 것 같습니다. 단지 그것에 공백을.

내가 생각 해낼 수 있었던 최고는 :

myString && !myString.allWhitespace

하지만 너무 장황 해 보입니다. 이것은 검증을위한 일반적인 일처럼 보이 므로 이것을 결정하는 더 간단한 방법 이 있어야합니다 .

답변:


245

또 다른 옵션은

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

3
myString? .trim ()은 부울을 반환하는 질문 대신 문자열 (또는 null 또는 공백)을 반환합니다. 나는 그것이 당신이 출력을 사용하는 방법에 달려 있다고 생각합니다.
Steven

12
또는boolean containsData = myString?.trim()
tim_yates

4
@Steven, Groovy 진실은 null 또는 빈 문자열이 거짓이라고 말하므로 ()이미 부울로 만들지 않은 문에서 필요하면 줄을 래핑 할 수도 있습니다 . 예 :def myVal = (myString?.trim())
cdeszaq

12
@cdeszaq 당신이 할 경우 def myVal = (myString?.trim())한 다음 myVal중 하나입니다 String또는 null괄호로 그것을 포장하는 부울로 변경되지 않습니다. 그러나 부울 변수에 할당하거나 사용 (myString?.trim()) as boolean하거나 (내 대답에서와 같이) if문에서 사용하면 문자열 (또는 null)의 Groovy Truth 값을 사용합니다
tim_yates

2
​if ("false") println "that's true too"
tim_yates

9

String에 메소드를 추가하여 더 의미를 가질 수 있습니다.

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

다음을 수행 할 수 있습니다.

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

3
metaClass 수정을 배치하는 가장 좋은 장소는 어디입니까?
cdeszaq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.