- 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
'백엔드개발자 > JAVA' 카테고리의 다른 글
예외처리 2( throw, throws, finally ) (0) | 2022.12.11 |
---|---|
예외처리 1( try-catch, printStackTrace(), getmessage() ) (0) | 2022.12.11 |
getSession(), getSession(true), getSession(false) (0) | 2022.07.19 |
@Data , hashCode() (0) | 2022.05.16 |
프로세스, 스레드 (0) | 2022.05.10 |