org.springframework.util ํจํค์ง์ StringUtils ํด๋์ค์๋ ์์ฝ๊ฒ ๋ฌธ์์ด์ ๋ค๋ฃฐ ์ ์๋ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๊ฒ์๊ธ์์๋ StringUtils์์ ์ ๊ณตํ๋ ๋ฌธ์์ด์ ํ์์ ์ฒดํฌํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฉ์๋์ ๋ํด์ ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค.
StringUtils์ ๋ชจ๋ ๋ฉ์๋๋ ์๋์ ๊ณต์ ๋ฌธ์์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
StringUtils (Spring Framework 5.3.22 API)
Check whether the given CharSequence contains actual text. More specifically, this method returns true if the CharSequence is not null, its length is greater than 0, and it contains at least one non-whitespace character. StringUtils.hasText(null) = false S
docs.spring.io
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")); }
์ ์ฒด ์ฝ๋
package com.example.javapractice; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.util.StringUtils; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest class JavapracticeApplicationTests { @Test @DisplayName("isEmpty") public void isEmptyTest() { assertTrue(StringUtils.isEmpty(null)); assertTrue(StringUtils.isEmpty("")); assertFalse(StringUtils.isEmpty(" ")); // ๊ณต๋ฐฑ์ False } @Test @DisplayName("hasLength") public void hasLengthTest() { assertTrue(StringUtils.hasLength("๊ธธ์ด๋ฅผ ๊ฐ์ง๊ณ ์์")); assertTrue(StringUtils.hasLength(" ")); // ๊ณต๋ฐฑ์ True assertFalse(StringUtils.hasLength("")); assertFalse(StringUtils.hasLength(null)); } @Test @DisplayName("hasText") public void hasTestTest() { assertTrue(StringUtils.hasText("๋ฌธ์์ด")); assertFalse(StringUtils.hasText("")); assertFalse(StringUtils.hasText(" ")); // ๊ณต๋ฐฑ์ False assertFalse(StringUtils.hasText(null)); } @Test @DisplayName("containsWhitespace") public void containsWhitespaceTest() { /* hasLength()๋ฅผ ๋จผ์ ํธ์ถ ํ, True์ผ์ ๊ณต๋ฐฑ์ ์ฒดํฌํฉ๋๋ค. */ assertTrue(StringUtils.containsWhitespace("๊ณต๋ฐฑ์ ํฌํจํ๊ณ ์์ต๋๋ค.")); assertFalse(StringUtils.containsWhitespace("๊ณต๋ฐฑ์ํฌํจํ์ง์๊ณ ์์ต๋๋ค.")); assertFalse(StringUtils.containsWhitespace("")); assertFalse(StringUtils.containsWhitespace(null)); } @Test @DisplayName("trimLeadingWhitespace") public void trimLeadingWhitespaceTest() { assertThat("๋ฌธ์์ด ์์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค.").isEqualTo(StringUtils.trimLeadingWhitespace(" ๋ฌธ์์ด ์์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค.")); } @Test @DisplayName("trimTrailingWhitespace") public void trimTrailingWhitespaceTest() { assertThat("๋ฌธ์์ด ๋ค์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค.").isEqualTo(StringUtils.trimTrailingWhitespace("๋ฌธ์์ด ๋ค์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค. ")); } @Test @DisplayName("trimWhitespace") public void trimWhitespaceTest() { assertThat("๋ฌธ์์ด ์๋ค๋ก ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค.").isEqualTo(StringUtils.trimWhitespace(" ๋ฌธ์์ด ์๋ค๋ก ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค. ")); } @Test @DisplayName("trimAllWhitespace") public void trimAllWhitespace() { assertThat("๋ฌธ์์ด์๋ชจ๋ ๊ณต๋ฐฑ์์ ๊ฑฐํ์ต๋๋ค.").isEqualTo(StringUtils.trimAllWhitespace(" ๋ฌธ์์ด์ ๋ชจ๋ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ์ต๋๋ค.")); } @Test @DisplayName("trimLeadingCharacter") public void trimLeadingCharacterTest() { assertThat("๋ณํ์ ๊ฑฐ").isEqualTo(StringUtils.trimLeadingCharacter("*๋ณํ์ ๊ฑฐ", '*')); } @Test @DisplayName("trimTrailingCharacter") public void trimTrailingCharacterTest() { assertThat("๋ณํ์ ๊ฑฐ").isEqualTo(StringUtils.trimTrailingCharacter("๋ณํ์ ๊ฑฐ*", '*')); } @Test @DisplayName("countOccurrencesOf") public void countOccurrencesOfTest() { assertThat(StringUtils.countOccurrencesOf("apple", "p")).isEqualTo(2); assertThat(StringUtils.countOccurrencesOf("apple", "c")).isEqualTo(0); } @Test @DisplayName("startWithIgnoreCase") public void startWithIgnoreCaseTest() { assertTrue(StringUtils.startsWithIgnoreCase("010-1234-5678", "010")); assertFalse(StringUtils.startsWithIgnoreCase("011-1234-5678", "010")); } @Test @DisplayName("endsWithIgnoreCase") public void endsWithIgnoreCaseTest() { assertTrue(StringUtils.endsWithIgnoreCase("010-1234-5678", "5678")); assertFalse(StringUtils.endsWithIgnoreCase("010-1234-5678", "1234")); } }
'BackEnd๐ฑ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Actuator Refresh ๋ฐ์ ์๋๋ ํ์ ํด๊ฒฐ (2) | 2022.11.12 |
---|---|
Actuator dependency and Swagger Stater 3.0.0 ์ถฉ๋ ์๋ฌ (0) | 2022.11.11 |
JUnit5 ์์ธํ ์์๋ณด๊ธฐ (3) | 2022.10.02 |
AssertJ ํต์ฌ ๊ธฐ๋ฅ ์์๋ณด๊ธฐ (1) | 2022.08.08 |
[Querydsl] unable to load class com.mysema.codegen.model.type'. error (1) | 2022.07.31 |
[Spring] [BaseTimeEntity, JPA Auditing]์ ํตํ ์์ฑ์๊ฐ/์์ ์๊ฐ ์๋ํ (1) | 2022.05.22 |
๋๊ธ