티스토리 뷰
안녕하세요.
최근 한동안 일이 있어서 블로그 활동이 뜸했었는데, 문자열에 관한 많은 API가 있지만 이번에 업무를 통해 저도 몰랐던 것에 대해서 포스팅
해보려고 합니다. 저도 이번에 프로젝트를 진행하면서 null값이 들어온 것에 대한 처리를 위해서 StringUtils를 사용해보았습니다.
따라서, 문자열을 다루는 StringUtils의 많은 기능에 대해서 알아보겠습니다.
StringUtils란?
- org.apach.commons.lang.StringUtils
- 자바의 String클래스가 제공하는 문자열 관련 기능을 강화한 클래스입니다.
특징
- StringUtils클래스만으로 거의 대부분의 문자열을 처리할 수 있습니다.
- 파라미터 값으로 null을 주더라도 절대 NullPointerException을 발생시키지 않습니다.
- 즉, null이 입력된 경우, 메소드에 따라서 알맞은 결과를 리턴합니다.
API
아래와 같이 많은 기능들이 있는데 필요할때 찾아서 활용하시면 될것 같습니다.
반환값 | 함수명 | 파라미터 |
String | abbreviate | String str, int maxWidth |
"…"를 포함한 지정한 사이즈로 문자열을 축소한다 maxWidth은 4보다 커야한다 | ||
String | abbreviate | String str, int offset, int maxWidth |
"…"를 포함한 지정한 사이즈로 문자열을 앞/뒤로 축소한다 offset은 7보다 커야한다 | ||
String | capitalise | String str |
deprecated | ||
String | capitaliseAllWords | String str |
deprecated | ||
String | capitalize | String str |
문자열중 첫번째 문자를 대문자로 만든다 | ||
String | center | String str, int size |
str의 길이가 size가 되도록 문자열 좌우에 공백문자를 하나씩 추가한다 (우측부터 시작한다) | ||
String | center | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 좌우에 padChar를 하나씩 추가한다 (우측부터 시작한다) | ||
String | center | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 좌우에 padStr을 하나씩 추가한다 (우측부터 시작한다) | ||
String | chomp | String str |
문자열 맨 끝에있는 '\n' , '\r', '\r\n'을 제거한다 | ||
String | chomp | String str, String separator |
문자열 맨 끝에 separator가 있으면 이를 제거한다 | ||
String | chompLast | String str |
deprecated | ||
String | chompLast | String str, String sep |
deprecated | ||
String | chop | String str |
문자열 맨 끝에있는 문자 하나를 제거한다 | ||
String | chopNewline | String str |
deprecated | ||
String | clean | String str |
deprecated | ||
String | concatenate | Object array[] |
deprecated | ||
boolean | contains | String str, char searchChar |
str이 searchChar를 포함하고 있으면 true | ||
boolean | contains | String str, String searchStr |
str이 searchStr을 포함하고 있으면 true | ||
boolean | containsNone | String str, char invalidChars[] |
str이 invalidChars의 각 문자를 모두 포함하고 있지 않으면 true | ||
boolean | containsNone | String str, String invalidChars |
str이 invalidChars를 모두 포함하고 있지 않으면 true | ||
boolean | containsOnly | String str, char valid[] |
str이 valid의 각 문자들만 포함하고 있어야 true | ||
boolean | containsOnly | String str, String validChars |
str이 validChars 들만을 포함하고 있어야 true | ||
int | countMatches | String str, String sub |
str중에 sub가 포함되어있는 갯수를 반환한다 | ||
String | defaultString | String str |
str이 null이면 ""를 반환하고 아니면 str을 반환한다 | ||
String | defaultString | String str, String defaultStr |
str이 null이면 defaultStr을 반환하고 아니면 str을 반환한다 | ||
String | deleteSpaces | String str |
deprecated | ||
String | deleteWhitespace | String str |
문자열중 공백문자가 있으면 모두 제거한다 | ||
String | difference | String str1, String str2 |
str1과 str2를 비교하여 다른부분을 반환한다 (str2의 부분을 반환) | ||
boolean | equals | String str1, String str2 |
str1이 null이면 str2가 null인지 유무를 반환하고 str1이 null이 아니면 str1과 str2의 equals를 반환 | ||
boolean | equalsIgnoreCase | String str1, String str2 |
equals와 동일하며 대소문자를 무시하고 비교한다 | ||
String | escape | String str |
deprecated | ||
String | getChomp | String str, String sep |
deprecated | ||
String | getNestedString | String str, String tag |
deprecated | ||
String | getNestedString | String str, String open, String close |
deprecated | ||
String | getPrechomp | String str, String sep |
deprecated | ||
int | indexOf | String str, char searchChar |
str에서 첫번째 searchChar의 인덱스를 반환한다 | ||
int | indexOf | String str, char searchChar, int startPos |
str의 startPos 인덱스부터 첫번째 searchChar의 인덱스를 반환한다 | ||
int | indexOf | String str, String searchStr |
str에서 첫번째 searchStr의 인덱스를 반환한다 | ||
int | indexOf | String str, String searchStr, int startPos |
str의 startPos 인덱스로부터 첫번째 searchStr의 인덱스를 반환한다 | ||
int | indexOfAny | String str, char searchChars[] |
str에서 searchChars중 포함하고 있는 문자의 첫번째 인덱스를 반환한다 | ||
int | indexOfAny | String str String searchChars |
str에서 searchChars중 포함하고 있는 문자열의 첫번째 인덱스를 반환한다 | ||
int | indexOfAny | String str, String searchStrs[] |
str에서 searchStr중 포함하고 잇는 문자열의 첫번째 인덱스를 반환한다 | ||
int | indexOfAnyBut | String str char searchChars[] |
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다 | ||
int | indexOfAnyBut | String str, String searchChars |
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다 | ||
int | indexOfDifference | String str1, String str2 |
str1과 str2를 비교하여 문자열이 틀려지기 시작하는 인덱스를 반환한다 | ||
boolean | isAlpha | String str |
문자열이 모두 Character.isLetter 이면 true (모두 문자이면 true) | ||
boolean | isAlphanumeric | String str |
문자열이 모두 Character.isLetterOrDigit 이면 true (문자거나 숫자이면 true) | ||
boolean | isAlphanumericSpace | String str |
문자열이 모두 Character.isLetterOrDigit 이거나 공백이면 true | ||
boolean | isAlphaSpace | String str |
문자열이 모두 Character.isLetter 이거나 공백문자이면 true | ||
boolean | isBlank | String str |
문자열이 공백문자이거나 길이가 0이거나 null인경우 true | ||
boolean | isEmpty | String str |
문자열이 길이가 0이거나 null인경우 true | ||
boolean | isNotBlank | String str |
문자열이 공백문자도 아니고 길이가 0도 아니고 null도 아니면 true | ||
boolean | isNotEmpty | String str |
문자열이 길이가 0이 아니고 null도 아니면 true | ||
boolean | isNumeric | String str |
문자열이 모두 Character.isDigit 이면 true (모두 숫자이면 true) | ||
boolean | isNumericSpace | String str |
문자열이 모두 Character.isDigit 이거나 공백문자이면 true | ||
boolean | isWhitespace | String str |
문자열이 모두 Character.isWhitespace 이면 true (모두 공백이면 true) | ||
String | join | Object array[] |
array에서 문자열을 읽어와 모두 연결시킨다 | ||
String | join | Object array[], char separator |
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Object array[], String separator |
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Iterator iterator, char separator |
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Iterator iterator, String separator |
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
int | lastIndexOf | String str, char searchChar |
str에서 마지막 searchChar의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, char searchChar, int startPos |
str의 startPos 인덱스부터 마지막 searchChar의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, String searchStr |
str에서 마지막 searchStr의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, String searchStr, int startPos |
str의 startPos 인덱스부터 마지막 searchStr의 인덱스를 반환한다 | ||
int | lastIndexOfAny | String str, String searchStrs[] |
str에서 searchStr의 문자열들중 포함하고 있는 문자열의 마지막 인덱스를 반환한다 | ||
String | left | String str, int len |
str의 좌측에서 len 길이만큼 문자열을 구한다 | ||
String | leftPad | String str, int size |
str의 길이가 size가 되도록 문자열 왼쪽에 ' '을 추가한다 | ||
String | leftPad | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 왼쪽에 padChar를 추가한다 | ||
String | leftPad | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 왼쪽에 padStr을 추가한다 | ||
String | lowerCase | String str |
str을 소문자로 변환한다 | ||
String | mid | String str, int pos, int len |
str의 pos 인덱스부터 len 길이만큼의 문자열을 구한다 | ||
String | overlay | String str, String overlay, int start, int end |
str의 start부터 end까지overlay로 변환한다 | ||
String | overlayString | String text, String overlay, int start, int end |
deprecated | ||
String | prechomp | String str, String sep |
deprecated | ||
String | repeat | String str, int repeat |
str을 repeat만큼 반복하여 반환한다 | ||
String | replace | String text, String repl, String width |
text에서 모든 repl을 width로 변환한다 | ||
String | replace | String text, String repl, String width, int max |
text에서 모든 repl을 width로 변환하는데 최대 max개만큼 변환한다 | ||
String | replaceChars | String str, char searchChar, char replaceChar |
str에서 searchChar를 replaceChar로 모두 변환한다 | ||
String | replaceChars | String str, String searchChars, String replaceChars |
str에서 searchChars를 replaceChars로 모두 변환한다 | ||
String | replaceOne | String text, String repl, String width |
text에서 repl를 width로 변환하는데 첫번째 하나만 변환한다 | ||
String | reverse | String str |
문자열을 앞뒤 순서를 바꾼다 | ||
String | reverseDelimited | String str, char separatorChar |
separatorChar를 구분으로 문자열을 나눈 후 나눠진 단어들을 역순으로 바꾼다 | ||
String | reverseDelimitedString | String str, String separatorChars |
deprecated | ||
String | right | String str, int len |
str의 len길이만큼 우측에서 문자열을 구한다 | ||
String | rightPad | String str, int size |
str의 길이가 size가 되도록 문자열 오른쪽에 ' '을 추가한다 | ||
String | rightPad | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 오른쪽에 padChar를 추가한다 | ||
String | rightPad | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 오른쪽에 padStr을 추가한다 | ||
String[] | split | String str |
공백문자를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, char separatorChar |
separatorChar를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, String separatorChars |
separatorChars를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, String seperatorChars, int max |
separatorChars를 구분자로 사용하여 분리한며 최대 max개 만큼한다. 배열의 크기는 max가 된다 | ||
String | strip | String str |
문자열 좌우에 있는 공백문자를 제거한다 trim과 동일하다 | ||
String | strip | String str, String stripChars |
문자열 좌우에 stripChars에 존재하는 문자를 제거한다 | ||
String[] | stripAll | String strs[] |
배열에 있는 모든 문자열 좌우에 있는 공백문자를 제거한다 | ||
String[] | stripAll | String strs[], String stripChars |
배열에 있는 모든 문자열 좌우에 stripChars에 존재하는 문자를 제거한다 | ||
String | stripEnd | String str, String stripChars |
문자열 우측에만 strip 한다 | ||
String | stripStart | String str, String stripChars |
문자열 좌측에만 strip 한다 | ||
String | stripToEmpty | String str |
str이 null이면 ""를 반환하고 아니면 strip 한다 | ||
String | stripToNull | String str |
str이 null이면 null을 반환하고 아니면 strip 한다 | ||
String | substring | String str, int start |
str의 start 인덱스부터 문자열을 구한다 | ||
String | substring | String str, int start, int end |
str의 start 부터 end 인덱스 까지 문자열을 구한다 | ||
String | substringAfter | String str, String separator |
str의 처음 separator 부분부터 문자열을 구한다 | ||
String | substringAfterLast | String str, String separator |
str의 마지막 separator부분부터 문자열을 구한다 | ||
String | substringBefore | String str, String separator |
str의 처음 separator 부분까지 문자열을 구한다 | ||
String | substringBeforeLast | String str, String separator |
str의 마지막 separator부분까지 문자열을 구한다 | ||
String | substringBetween | String str, String tag |
str에서 tag 사이에 있는 문자열을 구한다 | ||
String | substringBetween | String str, String open, String close |
str에서 open부터 close 까지 사이에 있는 문자열을 구한다 | ||
String | swapCase | String str |
대문자는 소문자로 변환하고 소문자는 대문자로 변환한다 | ||
String | trimToNull | String str |
str이 null이거나 length가 0이면 null을 반환하고 그렇지 않으면 좌우 공백문자를 제거한다 | ||
String | trim | String str |
문자열 좌우 공백문자를 제거한다 | ||
String | trimToEmpty | String str |
str이 null이면 ""를 반환하고 그렇지 않으면 좌우 공백문자를 제거한다 | ||
String | uncapitalise | String str |
deprecated | ||
String | uncapitalize | String str |
문자열의 첫문자를 소문자로 변환한다 | ||
String | upperCase | String str |
str을 대문자로 변환한다 |
사용 방법으로는 제가 사용해본 것으로 간단하게 표현해보겠습니다.
String name = StringUtils.defaultString(emp.getEmpName());
으로 emp 객체의 getEmpName Getter메소드를 통해서 받아온 내용이 null일 경우 ""를 반환하고 아니면 str을 반환합니다.
위의 사용법과 같이 많은 기능들이 있으니 필요로 하는 적재적소에 활용하시면 도움이 될 것같습니다. StringUtils에 대한 포스팅은
여기서 마치도록 하겠습니다. 앞으로도 업무 시, 배운것을 토대로 다양하고 도움이 될 만한 포스팅을 하도록 하겠습니다. :)
- Total
- Today
- Yesterday