본문 바로가기
백엔드개발자/JAVA

StringUtils

by 보혀니 2022. 9. 25.

- org.apache.commons.lang.StringUtils

- 대부분의 문자열 처리를 수행한다.

- 파라미터 값으로 Null을 주더라도 NullpointException을 발생시키지 않음 (오~~~~~~)

  ㄴ (Null이 입력되는 경우, 메소드에 따라 알맞은 결과값 리턴함)

 

 

 

 

 

 

주요 메서드 정리

1. isEmpty()

문자열이 null인지 ""인지 확인합니다.

@Test
@DisplayName("isEmpty")
public void isEmptyTest() {
    assertTrue(StringUtils.isEmpty(null));
    assertTrue(StringUtils.isEmpty(""));
    assertFalse(StringUtils.isEmpty(" ")); // 공백은 False
}

2. hasLength()

문자열이 null인지 ""인지 확인합니다.
isEmpty()는 " "와 같은 공백 문자열에 관해 False를 반환하는 반면 hasLength()는 True를 반환합니다.
isEmpty() 같은 경우 현재 Deprecated 되어 있으며, 공식문서에서는 hasLength()를 사용하거나, hasText()를 사용하도록 권장하고 있습니다.

@Test
@DisplayName("hasLength")
public void hasLengthTest() {
    assertTrue(StringUtils.hasLength("길이를 가지고 있음"));
    assertTrue(StringUtils.hasLength(" ")); // 공백은 True
    assertFalse(StringUtils.hasLength(""));
    assertFalse(StringUtils.hasLength(null));
}

3. hasText()

문자열이 진정한 Text형태인지 확인합니다. 즉, null을 포함해서 공백만 존재한다면 False를 반환합니다.
hasText()가 굉장히 유용하다고 생각되는데, 이를 사용하면 올바른 문자열인지 if문을 범벅으로 사용하지 않아도 검증할 수 있습니다.

@Test
@DisplayName("hasText")
public void hasTestTest() {
    assertTrue(StringUtils.hasText("문자열"));
    assertFalse(StringUtils.hasText(""));
    assertFalse(StringUtils.hasText(" "));  // 공백은 False
    assertFalse(StringUtils.hasText(null));
}

4. containsWhitespace()

문자열이 공백을 포함하고 있는지 아닌지를 검증합니다.

@Test
@DisplayName("containsWhitespace")
public void containsWhitespaceTest() {
    /*
        hasLength()를 먼저 호출 후, True일시 공백을 체크합니다.
     */
    assertTrue(StringUtils.containsWhitespace("공백은 포함하고 있습니다."));
    assertFalse(StringUtils.containsWhitespace("공백은포함하지않고있습니다."));
    assertFalse(StringUtils.containsWhitespace(""));
    assertFalse(StringUtils.containsWhitespace(null));
}

5. trimLeadingWhitespace()

문자열 앞의 공백을 제거합니다.

@Test
@DisplayName("trimLeadingWhitespace")
public void trimLeadingWhitespaceTest() {
    assertThat("문자열 앞의 공백을 제거했습니다.").isEqualTo(StringUtils.trimLeadingWhitespace("   문자열 앞의 공백을 제거했습니다."));
}

6. trimTrailingWhitespace()

문자열 뒤의 공백을 제거합니다.

@Test
@DisplayName("trimTrailingWhitespace")
public void trimTrailingWhitespaceTest() {
    assertThat("문자열 뒤의 공백을 제거했습니다.").isEqualTo(StringUtils.trimTrailingWhitespace("문자열 뒤의 공백을 제거했습니다.   "));
}

7. trimWhitespace()

문자열 앞 뒤의 공백을 제거합니다.

@Test
@DisplayName("trimWhitespace")
public void trimWhitespaceTest() {
    assertThat("문자열 앞뒤로 공백을 제거했습니다.").isEqualTo(StringUtils.trimWhitespace("   문자열 앞뒤로 공백을 제거했습니다.  "));
}

8. trimAllWhitespace()

문자열의 모든 공백을 제거합니다.

@Test
@DisplayName("trimAllWhitespace")
public void trimAllWhitespace() {
    assertThat("문자열의모든공백을제거했습니다.").isEqualTo(StringUtils.trimAllWhitespace("   문자열의 모든 공백을 제거했습니다."));
}

9. trimLeadingCharacter()

문자열에서 선행 글자를 하나 제거합니다.

 @Test
 @DisplayName("trimLeadingCharacter")
 public void trimLeadingCharacterTest() {
     assertThat("별표제거").isEqualTo(StringUtils.trimLeadingCharacter("*별표제거", '*'));
 }

10. trimTrailingCharacter()

문자열의 후행 글자를 하나 제거합니다.

@Test
@DisplayName("trimTrailingCharacter")
public void trimTrailingCharacterTest() {
    assertThat("별표제거").isEqualTo(StringUtils.trimTrailingCharacter("별표제거*", '*'));
}

11. countOccurrencesOf()

문자열에서 지정한 글자가 몇 개가 나오는지 검사합니다.

@Test
@DisplayName("countOccurrencesOf")
public void countOccurrencesOfTest() {
    assertThat(StringUtils.countOccurrencesOf("apple", "p")).isEqualTo(2);
    assertThat(StringUtils.countOccurrencesOf("apple", "c")).isEqualTo(0);
}

12. startWithIgnoreCase()

문자열이 지정한 문자열로 시작하는지 검사합니다.

@Test
@DisplayName("startWithIgnoreCase")
public void startWithIgnoreCaseTest() {
    assertTrue(StringUtils.startsWithIgnoreCase("010-1234-5678", "010"));
    assertFalse(StringUtils.startsWithIgnoreCase("011-1234-5678", "010"));
}

13. endsWithIgnoreCase()

문자열이 지정한 문자열로 끝나는지 검사합니다.

@Test
@DisplayName("endsWithIgnoreCase")
public void endsWithIgnoreCaseTest() {
    assertTrue(StringUtils.endsWithIgnoreCase("010-1234-5678", "5678"));
    assertFalse(StringUtils.endsWithIgnoreCase("010-1234-5678", "1234"));
}

 

 

 

 

 

메서드 정리 참고

https://dkswnkk.tistory.com/624