[java] Java 문자열이 모두 공백이 아닌지 어떻게 확인합니까?

Java를 사용하여 Java String 또는 문자 배열이 공백으로 구성된 것이 아닌지 확인하고 싶습니까?

이것은 자바 스크립트를 제외하고는 매우 비슷한 질문입니다.
문자열에 공백뿐만 아니라 문자 및 공백이 포함되어 있는지 어떻게 확인할 수 있습니까?

편집 : 영숫자 문자에 대한 비트를 제거 했으므로 더 의미가 있습니다.



답변

내가 생각할 수있는 가장 짧은 해결책 :

if (string.trim().length() > 0) ...

공백 만 검사합니다. 특정 문자 클래스를 확인하려면 다음 match()과 같은 정규 표현식 을 사용하십시오 .

if (string.matches(".*\\w.*")) ...

… 적어도 하나 이상의 (ASCII) 영숫자를 확인합니다.


답변

Apache Commons Lang 라이브러리를 사용합니다. 여기에는 모든 종류의 문자열 작업에 유용한 StringUtils라는 클래스가 있습니다. 문자열이 모든 공백이 아닌지 확인하려면 다음을 사용할 수 있습니다.

StringUtils.isBlank(<your string>)

참조는 다음과 같습니다. StringUtils.isBlank


답변

Carl Smotricz가 언급 한 것보다 약간 짧음 :

!string.trim().isEmpty();


답변


답변

Java 11을 사용하는 경우 새 isBlank문자열 메소드가 유용합니다.

!s.isBlank();

당신이 사용하는 경우 자바 8, 9 또는 10을 , 당신은 문자열이 공백뿐만 아니라 있는지 확인하는 간단한 스트림을 만들 수있다 :

!s.chars().allMatch(Character::isWhitespace));

Apache Commons Lang과 같은 타사 라이브러리가 필요하지 않은 것 외에도 이러한 솔루션은 다른 많은 답변에서 제안 된 기반 솔루션 ' '과 같이 일반 공백 뿐만 아니라 공백 문자를 처리 할 수 ​​있다는 이점이 trim있습니다. 지원되는 모든 공백 유형의 전체 목록은 Javadoc 을 참조하십시오 . 빈 문자열도 두 경우 모두 적용됩니다.


답변

if(target.matches("\\S"))
    // then string contains at least one non-whitespace character

“비 공백 문자”를 의미하는 백 슬래시 cap-S 사용 참고

가장 간단한 솔루션 일 것입니다.


답변

이 답변 즉, 적어도 하나의 영숫자 문자가 있습니다 “라는 주석에 더 중점을 둡니다 . 그 외에도 String이 인 경우 NPE로 당신을 해치지 않는 것을 제외하고는 다른 (이전) 솔루션에 너무 많이 추가되지 않습니다 null.

우리는 원하는 false(1) 일이야 경우 null또는 (2)의이 비어 있거나 (3) 만 whitechars를 포함이야.

public static boolean containsNonWhitespaceChar(String s) {
  return !((s == null) || "".equals(s.trim()));
}