[Java] StringUtils의 hasLength()와 hasText()

2024. 8. 26. 13:57·Language/Java
반응형

프로젝트 진행 중 intellij에서 StringUtils.isEmpty()를 사용하는 곳에 노란색 경고와 hasLength(String)나 hasText(String)를 대신 사용하라는 메시지가 나와서 두 메서드의 차이점을 찾아봤다.

StringUtils

  • 스프링 프레임워크에서 제공하는 문자열 처리 유틸리티 클래스
  • org.springframework.util 패키지에 포함되어 있으며, 문자열 검사, 변환, 조작, 비교 등의 문자열 처리 관련 메서드를 가진 유틸리티 클래스이다.
  • isEmpty()는 5.3 버전부터 deperecated되기 때문에 hasLength()나 hasText() 사용을 권장한다.
  • 두 메서드는 비슷한 역할을 하지만 코드를 보면 차이점이 있다.
    • 빈 문자열인지 확인이 필요할 경우 hasText()를 사용해야한다.

코드 비교

public static boolean hasLength(@Nullable String str) {
    return (str != null && !str.isEmpty());
}

// String.isEmpty()
public boolean isEmpty() {
    return value.length == 0;
}
public static boolean hasText(@Nullable String str) {
    return (str != null && !str.isBlank());
}

// String.isBlack()
public boolean isBlank() {
    return indexOfNonWhitespace() == length();
}
  • 두 메서드 모두 공통적으로 null인지 확인한다.
  • hasLength는 isEmpty로 길이를 확인하는 반면 hasText는 isBlank로 빈 문자열 여부를 확인한다.
    @Test
    public void TestHasLength() {
        String textString = "abc";
        String blankString = " ";
        String emptyString = "";
        String nullString = null;
        assertTrue(StringUtils.hasLength(textString));
        assertTrue(StringUtils.hasLength(blankString));
        assertFalse(StringUtils.hasLength(emptyString));
        assertFalse(StringUtils.hasLength(nullString));
    }

    @Test
    public void TestHasText() {
        String textString = "abc";
        String blankString = " ";
        String emptyString = "";
        String nullString = null;
        assertTrue(StringUtils.hasText(textString));
        assertFalse(StringUtils.hasText(blankString));
        assertFalse(StringUtils.hasText(emptyString));
        assertFalse(StringUtils.hasText(nullString));
    }
  • 공백으로만 이루어진 문자열도 허용하지 않기 위해서는 hasText를 사용해야한다.
반응형
저작자표시 비영리 변경금지 (새창열림)
'Language/Java' 카테고리의 다른 글
  • [Java] call by value, call by reference
  • [Java] sealed
  • [Java]lombok 적용
  • AutoCloseable
덴마크초코우유
덴마크초코우유
IT, 알고리즘, 프로그래밍 언어, 자료구조 등 정리
    반응형
  • 덴마크초코우유
    이것저것끄적
    덴마크초코우유
  • 전체
    오늘
    어제
    • 분류 전체보기 (123)
      • Spring Framework (10)
        • Spring (5)
        • JPA (3)
        • Spring Security (0)
      • Language (51)
        • Java (11)
        • Python (10)
        • JavaScript (5)
        • NUXT (2)
        • C C++ (15)
        • PHP (8)
      • DB (16)
        • MySQL (10)
        • Reids (3)
        • Memcached (2)
      • 개발 (3)
      • 프로젝트 (2)
      • Book (2)
      • PS (15)
        • 기타 (2)
        • 백준 (2)
        • 프로그래머스 (10)
      • 딥러닝 (8)
        • CUDA (0)
        • Pytorch (0)
        • 모델 (0)
        • 컴퓨터 비전 (4)
        • OpenCV (1)
      • 기타 (16)
        • 디자인패턴 (2)
        • UnrealEngine (8)
        • ubuntu (1)
        • node.js (1)
        • 블로그 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    게임
    게임 개발
    프로그래머스
    pytorch
    select
    알고리즘
    블루프린트
    PS
    MySQL
    memcached
    php
    딥러닝
    NUXT
    CPP
    mscoco
    redis
    Python
    Unreal Engine
    클래스
    Unreal
    C++
    FPS
    파이썬
    JS
    map
    자바
    언리얼엔진4
    C
    JavaScript
    웹
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
덴마크초코우유
[Java] StringUtils의 hasLength()와 hasText()
상단으로

티스토리툴바