티스토리 뷰
spring-core.jar 에 org.springframework.util 패키지 밑에는 개발에 도움이 되는 여러 클래스들이 있다.
그 중에 StringUtils라는 추상클래스가 있는데 이 클래스는 String을 다루는데 편리한 기능들이 몇개 있는 것 같아서 정리해본다.
실제로 들어가서 소스를 보면 도움이 많이 될 것 같다.
@Deprecated는 제외
메서드 위에 친절히 어떻게 사용하는지 설명도 되어있고 예제도 있다.
보통 개발하다가 만들어야 될 공통 함수들이 웬만한 것은 정의되어 있는 것 같다.
hasLength
hasLength 메서드는 자료형으로 char 나 String을 받을 수 있게 오버로딩 되어있는데 단순히 파라미터가 null 이거나 "" 비어있는 문자 일경우 false를 반환하고 나머지 경우는 true를 반환한다. 공백만 있을 경우에는 true를 반환한다.
@Test
@DisplayName("hasLength 테스트")
void hasLengthTest() throws Exception{
assertThat(StringUtils.hasLength(null)).isFalse();
assertThat(StringUtils.hasLength("")).isFalse();
assertThat(StringUtils.hasLength(" ")).isTrue();
assertThat(StringUtils.hasLength("Hello")).isTrue();
}
hasText
hasText는 파라미터가 문자열인지 확인해서 true 또는 false를 반환하는 메서드이다.
@Test
@DisplayName("hasText 테스트")
void hasTextTest() throws Exception{
assertThat(StringUtils.hasText(null)).isFalse();
assertThat(StringUtils.hasText("")).isFalse();
assertThat(StringUtils.hasText(" ")).isFalse();
assertThat(StringUtils.hasText("12345")).isTrue();
assertThat(StringUtils.hasText(" 12345 ")).isTrue();
}
containsWhitespace
파라미터로 들어오는 문자열 중에 공백이 있는지 확인하는 메서드 있으면 true 없으면 false이다.
@Test
@DisplayName("containsWhitespace 테스트")
void containsWhitespaceTest() throws Exception{
assertThat(StringUtils.containsWhitespace(" ")).isTrue();
assertThat(StringUtils.containsWhitespace("")).isFalse();
assertThat(StringUtils.containsWhitespace("123456")).isFalse();
assertThat(StringUtils.containsWhitespace("123 456")).isTrue();
}
trimWhitespace
문자의 앞 뒤에 공백을 제거 한다.
@Test
@DisplayName("trimWhitespace 테스트")
void trimWhitespaceTest() throws Exception{
assertThat(StringUtils.trimWhitespace(" 1234")).isEqualTo("1234");
assertThat(StringUtils.trimWhitespace(" 1234안녕 ")).isEqualTo("1234안녕");
assertThat(StringUtils.trimWhitespace(" 1234안녕 하세요")).isEqualTo("1234안녕 하세요");
}
trimAllWhitespace
문자열의 전체 공백을 제거한다. 위의 trimWhitespace 같은 경우는 문자열 중간에 공백이 들어가있으면 그 공백은 없어지지 않지만 이 메서드를 사용하면 공백 모두를 제거한다.
@Test
@DisplayName("trimAllWhitespace 테스트")
void trimAllWhitespaceTest() throws Exception{
assertThat(StringUtils.trimAllWhitespace(" 1234 ")).isEqualTo("1234");
assertThat(StringUtils.trimAllWhitespace(" 1234안녕 하세요 ")).isEqualTo("1234안녕하세요");
}
trimLeadingCharacter
제공된 문자열에서 제공된 선행 문자의 모든 발생을 제거합니다.
예제에서 선행문자인 '-'를 제거한다.
@Test
@DisplayName("trimLeadingCharacter 테스트")
void trimLeadingCharacterTest() throws Exception{
assertThat(StringUtils.trimLeadingCharacter("-01012345678", '-')).isEqualTo("01012345678");
}
trimTrailingCharacter
제공된 문자열에서 제공된 후행 문자의 모든 발생을 제거합니다.
예제에서 후행문자인 '-'를 제거한다.
@Test
@DisplayName("trimTrailingCharacter 테스트")
void trimTrailingCharacterTest() throws Exception{
assertThat(StringUtils.trimTrailingCharacter("01012345678-", '-')).isEqualTo("01012345678");
}
startsWithIgnoreCaseTest
주어진 문자열이 지정된 접두사로 끝나는 지 테스트하고 대문자 / 소문자를 무시합니다.
두 번째로 오는 문자열이 접두사인데 첫 번째로 오는 문자열중에 대소문자를 무시하고 문자열이 맞는지 확인하는 메서드
(번역기 돌리고 했더니 좀 말이 어렵다;;)
@Test
@DisplayName("startsWithIgnoreCase 테스트")
void startsWithIgnoreCaseTest() throws Exception{
assertThat(StringUtils.startsWithIgnoreCase("Hello, How are you", "HELLO")).isTrue();
assertThat(StringUtils.startsWithIgnoreCase("Hello, How are you", "YOU")).isFalse();
}
endsWithIgnoreCaseTest
주어진 문자열이 지정된 접미사로 끝나는 지 테스트하고 대문자 / 소문자를 무시합니다.
이건 startsWithIgnoreCaseTest랑 똑같은데 접두사냐 접미사의 차이이다.
@Test
@DisplayName("startsWithIgnoreCase 테스트")
void startsWithIgnoreCaseTest() throws Exception{
assertThat(StringUtils.startsWithIgnoreCase("Hello, How are you", "HELLO")).isTrue();
assertThat(StringUtils.startsWithIgnoreCase("Hello, How are you", "YOU")).isFalse();
}
countOccurrencesOf
주어진 문자열에서 해당 문자열이 얼마나 나오는지 확인할 수 있다.
개수로 리턴된다.
@Test
@DisplayName("countOccurrencesOf 테스트")
void countOccurrencesOf() throws Exception{
String str = "Hello, How are you? Fine Thank you h";
assertThat(StringUtils.countOccurrencesOf(str, "H")).isEqualTo(2);
assertThat(StringUtils.countOccurrencesOf(str, ",")).isEqualTo(1);
assertThat(StringUtils.countOccurrencesOf(str, "y")).isEqualTo(2);
}
실제로 SpringUtils에 이렇게 써져있음.
//---------------------------------------------------------------------
// Convenience methods for working with formatted Strings
//---------------------------------------------------------------------
getFilename
파일 경로에서 경로를 제외한 파일의 이름만 가져온다.
@Test
@DisplayName("getFilename 테스트")
void getFilenameTest() throws Exception{
assertThat(StringUtils.getFilename("mypath/myfile.txt")).isEqualTo("myfile.txt");
}
getFilenameExtension
파일의 확장자명만 가져온다.
@Test
@DisplayName("getFilenameExtension 테스트")
void getFilenameExtensionTest() throws Exception{
assertThat(StringUtils.getFilenameExtension("mypath/myfile.txt")).isEqualTo("txt");
}
stripFilenameExtension
파일 경로의 확장자명만 빼고 경로를 문자열로 가져온다.
@Test
@DisplayName("stripFilenameExtension 테스트")
void stripFilenameExtensionTest() throws Exception{
assertThat(StringUtils.stripFilenameExtension("mypath/myfile.txt")).isEqualTo("mypath/myfile");
}
이 외에도 여러가지 있는데 천천히 추가해야겠다.
- Total
- Today
- Yesterday
- Github Status
- mybatis config
- Java
- svn
- mybatis
- 오라클
- rocky
- Kotlin
- input
- Spring
- Bash tab
- LocalDateTime
- k8s
- oracle
- LocalDate
- 북리뷰
- springboot
- docker
- config-location
- maven
- elasticsearch
- window
- jQuery
- Spring Security
- intellij
- localtime
- Mac
- 베리 심플
- JavaScript
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |