kr.co.hit.live.util
Class StringHelper

java.lang.Object
  extended by kr.co.hit.live.util.StringHelper

public class StringHelper
extends Object

String(TEXT) 관련 Live Framework의 Helper Class

아래 Method들은 모두 static으로 선언 되었기 때문에 유념하기 바란다.

Since:
3.0
Version:
$Revision: 1.1 $ $Date: 2006/09/26 08:20:11 $
Author:
노준훈

Constructor Summary
protected StringHelper()
           StringHelper의 default 컨스트럭터(Constructor).
 
Method Summary
static String alignCenter(String source, int length)
           문자열을 중앙 정렬한다.
static String alignCenter(String source, int length, boolean isEllipsis)
           문자열을 중앙 정렬한다.이때 문자열뒤에 줄임표는 넣지 않는다.
static String alignLeft(String source, int length)
           문자열을 좌측 정렬한다.
static String alignLeft(String source, int length, boolean isEllipsis)
           문자열을 좌측 정렬한다.
static String alignRight(String source, int length)
           문자열을 우측 정렬한다.
static String alignRight(String source, int length, boolean isEllipsis)
           문자열을 우측 정렬한다.
static String byteSubString(String source, int len)
           Byte 잘라내기(한글포함).
static String capitalize(String source)
           문자열의 제일 처음글자를 대문자화 한다.
static int getByteLength(String source)
           문자열의 byte 길이 체크 한다.
static String getParam(String source, String key, String delim, String defaultValue)
           문자열에서 Property형태의 값을 추출한다.
static byte[] hexStringToByteArray(String hexStr)
           HEX String을 byte array로 반환한다.
static boolean isNull(String source)
           문자열의 Null 이나 공백 문자열 여부를 판단한다.
static boolean isNull(String source, boolean isTrim)
           문자열의 Null 이나 공백 문자열 여부를 판단한다.
static String join(Object[] aryObj, String delim)
           배열을 받아 연결될 문자열로 연결한다.
static String lPad(String source, int len, char pad)
           여분의 빈 자리 만큼 왼쪽부터 패딩문자를 채운다.
static String lPad(String source, int len, char pad, boolean isTrim)
           여분의 빈 자리 만큼 왼쪽부터 패딩문자를 채운다.
static String lTrim(String source)
           해당 문자열의 왼쪽 WhiteSpace(Character.isWhitespace(char))를 지운다.
static double null2double(String source)
           파라미터가 null이나 "", " " 이면 0.0D 리턴 (Trim 여부 true).
static float null2float(String source)
           파라미터가 null이나 "", " " 이면 0.0F 리턴 (Trim 여부 true).
static long null2long(String source)
           파라미터가 null이나 "", " " 이면 0L 리턴 (Trim 여부 true).
static String null2string(String source, String value)
           파라미터가 null이나 "", " " 이면 value를 리턴, 아니면 source를 리턴 String source = null; String result = StringHelper.null2string(source,"0"); result"0"를 가지게 된다.
static String null2void(String source)
           문자열을 받아 null이나 문자열이 space로 이뤄진 " " - 문자열 일 경우 ""으로 변환 한다.
static int null2zero(String source)
           파라미터가 null이나 "", " " 이면 0 리턴 (Trim 여부 true).
static String replaceLeftSpace(String source, String repStr)
           해당 문자열의 왼쪽의 WhiteSpace(Character.isWhitespace(char))를 해당 문자로 대체.
static String replaceRightSpace(String source, String repStr)
           해당 문자열의 오른쪽의 WhiteSpace(Character.isWhitespace(char))를 해당 문자로 대체.
static String rPad(String source, int len, char pad)
           여분의 빈 자리 만큼 오른쪽부터 패딩문자를 채운다.
static String rPad(String source, int len, char pad, boolean isTrim)
           여분의 빈 자리 만큼 오른쪽부터 패딩문자를 채운다.
static String rTrim(String source)
           해당 문자열의 오른쪽 WhiteSpace(Character.isWhitespace(char))를 지운다.
static int search(String source, String target)
           대상문자열(source)에서 지정문자열(target)이 검색된 횟수를, 지정문자열이 없으면 0 을 반환한다.
static String[] sortStringArray(Enumeration<String> source)
           문자열의 Enemration을 정렬된 배열로 반환한다.
static void sortStringArray(String[] source)
           문자열의 배열을 정렬한다.
static List<String> split(String str, String delim)
           str 문자열을 delim을 기준으로 split하여 List에 담아준다.
static List<String> split(String str, String delim, int cnt, String defStr)
           str 문자열을 delim을 기준으로 split하여 List에 담아준다.
static void split(String str, String delim, String[] dest, String defStr)
          문자열을 delim 기준으로 split하여 주어진 dest 배열에 담는다.
static boolean strEquals(String source, String target)
           문장열의 비교시 사용.
static List<String> tokenize(String str, String delims)
          문자열을 delims를 기준으로 잘라서 List로 반환한다. delims 들 자체는 token으로 반환되지 않는다.
static List<String> tokenize(String str, String delims, boolean returnDelims)
          문자열을 delims를 기준으로 잘라서 List로 반환한다. delims 들 자체도 token으로 반환시킬지 여부를 returnDelims로 지정한다.
static String toSubString(String source, int beginIndex)
           지정된 문자열의 일부분을 리턴함.
static String toSubString(String source, int beginIndex, int endIndex)
           지정된 문자열의 일부분을 리턴함.
static
<T> Vector<T>
toVector(T[] array)
           배열을 Vector로 만든다.
static String unescapeUnicode(String s)
          Unicode 로 표현댄 문자들을 실제 문자로 변경한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StringHelper

protected StringHelper()

StringHelper의 default 컨스트럭터(Constructor).

Method Detail

getParam

public static String getParam(String source,
                              String key,
                              String delim,
                              String defaultValue)

문자열에서 Property형태의 값을 추출한다. Property 형태란 'key=value'형식으로 되어있는 것을 의미한다.

 String source = "key1=value1::key2=value2::key3=value3";
 String key = "key2";
 String delim = "::";
 String result = StringHelper.getParam(source,key, delim, "Default Value");
 
result"value2" 을 가지게 된다.

Parameters:
source - 프로퍼티를 검색할 원본 문자열
key - 검색할 키 문자열
delim - 구분자
defaultValue - 해당 Key에 해당하는 값이 없을때 반환할 기본값
Returns:
검색된 Property의 Value

lPad

public static String lPad(String source,
                          int len,
                          char pad)

여분의 빈 자리 만큼 왼쪽부터 패딩문자를 채운다.

 String source = "300";
 String result = StringHelper.lPad(source, 5, '#');
 
result"##300" 을 가지게 된다.

Parameters:
source - 원본 문자열
len - 원하고자 하는 문자열의 길이
pad - 덧붙히고자 하는 문자
Returns:
패딩된 문자열

lPad

public static String lPad(String source,
                          int len,
                          char pad,
                          boolean isTrim)

여분의 빈 자리 만큼 왼쪽부터 패딩문자를 채운다.

 String source = "300";
 String result = StringHelper.lPad(source, 5, '#');
 
result"##300" 을 가지게 된다.

Parameters:
source - 원본 문자열
len - 원하고자 하는 문자열의 길이
pad - 덧붙히고자 하는 문자
isTrim - 문자열 trim 여부
Returns:
패딩된 문자열

rPad

public static String rPad(String source,
                          int len,
                          char pad)

여분의 빈 자리 만큼 오른쪽부터 패딩문자를 채운다.

 String source = "300";
 String result = StringHelper.rPad(source, 5, '#');
 
result"300##" 을 가지게 된다.

Parameters:
source - 원본 문자열
len - 원하고자 하는 문자열의 길이
pad - 덧붙히고자 하는 문자
Returns:
패딩된 문자열

rPad

public static String rPad(String source,
                          int len,
                          char pad,
                          boolean isTrim)

여분의 빈 자리 만큼 오른쪽부터 패딩문자를 채운다.

 String source = "300";
 String result = StringHelper.rPad(source, 5, '#');
 
result"300##" 을 가지게 된다.

Parameters:
source - 원본 문자열
len - 원하고자 하는 문자열의 길이
pad - 덧붙히고자 하는 문자
isTrim - 문자열의 trim 여부
Returns:
패딩된 문자열

lTrim

public static String lTrim(String source)

해당 문자열의 왼쪽 WhiteSpace(Character.isWhitespace(char))를 지운다.

Parameters:
source - 문자열
Returns:
왼쪽 공백이 제거된 문자열

rTrim

public static String rTrim(String source)

해당 문자열의 오른쪽 WhiteSpace(Character.isWhitespace(char))를 지운다.

Parameters:
source - 문자열
Returns:
오른쪽 공백이 제거된 문자열

byteSubString

public static String byteSubString(String source,
                                   int len)

Byte 잘라내기(한글포함).

 String source = "";
 String result = StringHelper.byteSubString(source, 4);
 
result"?????" 을 가지게 된다.

Parameters:
source - 원본 문자열
len - 원하고자 하는 문자열의 길이
Returns:
잘려진 문자열

alignLeft

public static String alignLeft(String source,
                               int length)

문자열을 좌측 정렬한다. 이때 문자열뒤에 줄임표는 넣지 않는다.

 String source = "ABCDEFG";
 String result = StringHelper.alignLeft(source, 10);
 
result"ABCDEFG " 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
Returns:
정렬이 이루어진 문자열

alignLeft

public static String alignLeft(String source,
                               int length,
                               boolean isEllipsis)

문자열을 좌측 정렬한다.

 String source = "ABCDEFG";
 String result = StringHelper.alignLeft(source, 5, true);
 
result"AB..." 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
isEllipsis - 마지막에 줄임표("...")의 여부
Returns:
정렬이 이루어진 문자열

alignRight

public static String alignRight(String source,
                                int length)

문자열을 우측 정렬한다. 이때 문자열뒤에 줄임표는 넣지 않는다.

 String source = "ABCDEFG";
 String result = StringHelper.alignRight(source, 10);
 
result" ABCDEFG" 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
Returns:
정렬이 이루어진 문자열

alignRight

public static String alignRight(String source,
                                int length,
                                boolean isEllipsis)

문자열을 우측 정렬한다.

 String source = "ABCDEFG";
 String result = StringHelper.alignRight(source, 5, true);
 
result"AB..." 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
isEllipsis - 마지막에 줄임표("...")의 여부
Returns:
정렬이 이루어진 문자열

alignCenter

public static String alignCenter(String source,
                                 int length)

문자열을 중앙 정렬한다. 이때 문자열뒤에 줄임표는 넣지 않는다. 만약 공백이 홀수로 남는다면 오른쪽에 들어 간다.

 String source = "ABCDEFG";
 String result = StringHelper.alignCenter(source, 10);
 
result" ABCDEFG " 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
Returns:
정렬이 이루어진 문자열

alignCenter

public static String alignCenter(String source,
                                 int length,
                                 boolean isEllipsis)

문자열을 중앙 정렬한다.이때 문자열뒤에 줄임표는 넣지 않는다. 만약 공백이 홀수로 남는다면 오른쪽에 들어 간다.

 String source = "ABCDEFG";
 String result = StringHelper.alignCenter(source, 5,true);
 
result"AB..." 을 가지게 된다.

Parameters:
source - 원본 문자열
length - 정렬이 이루어질 길이
isEllipsis - 마지막에 줄임표("...")의 여부
Returns:
정렬이 이루어진 문자열

capitalize

public static String capitalize(String source)

문자열의 제일 처음글자를 대문자화 한다.

 String source = "abcdefg";
 String result = StringHelper.capitalize(source);
 
result"Abcdefg" 을 가지게 된다.

Parameters:
source - 원본 문자였
Returns:
대문자화 된 문자열

search

public static int search(String source,
                         String target)

대상문자열(source)에서 지정문자열(target)이 검색된 횟수를, 지정문자열이 없으면 0 을 반환한다.

 String source = "ar";
 String target = "StringHelper Class &ar; search";
 int result = StringHelper.search(source, target);
 
result2을 가지게 된다.

Parameters:
source - 대상문자열
target - 검색할 문자열
Returns:
지정문자열이 검색되었으면 검색된 횟수를, 검색되지 않았으면 0 을 반환한다.

join

public static String join(Object[] aryObj,
                          String delim)

배열을 받아 연결될 문자열로 연결한다. 이때 각 엘레멘트 사이에 구분문자열을 추가한다.

 String[] source = new String[] {"AAA","BBB","CCC"};
 String result = StringHelper.join(source,"+");
 
result"AAA+BBB+CCC"를 가지게 된다.

Parameters:
aryObj - 문자열로 만들 배열
delim - 각 엘레멘트의 구분 문자열
Returns:
연결된 문자열

getByteLength

public static int getByteLength(String source)

문자열의 byte 길이 체크 한다. (한글은 2byte 취급)

 String source = "A123456BB";
 int result = StringHelper.getByteLength(source);
 
result10을 가지게 된다.

Parameters:
source - 문자열
Returns:
문자열의 길이

isNull

public static boolean isNull(String source)

문자열의 Null 이나 공백 문자열 여부를 판단한다. isTrim = true;

 String source = "";
 boolean result = StringHelper.isNull(source);
 
resulttrue 을 가지게 된다.

Parameters:
source - 문자열
Returns:
NULL("", null) 여부

isNull

public static boolean isNull(String source,
                             boolean isTrim)

문자열의 Null 이나 공백 문자열 여부를 판단한다.

 String source = "";
 boolean result = StringHelper.isNull(source);
 
resulttrue 을 가지게 된다.

Parameters:
source - 문자열
isTrim - Trim 여부 (default는 true);
Returns:
NULL("",null) 여부

toVector

public static <T> Vector<T> toVector(T[] array)

배열을 Vector로 만든다.

 String[] source = new String[]{"AAA","BBB","CCC","DDD"};
 Vector result = StringHelper.toVector(source);
 
result[AAA,BBB,CCC,DDD]

Parameters:
array - 원본 배열
Returns:
배열과 같은 내용을 가지는 Vector

sortStringArray

public static void sortStringArray(String[] source)

문자열의 배열을 정렬한다.

 String[] source = new String[]{"CCC","BBB","DDD","AAA"};
 StringHelper.sortStringArray(source);
 
source[AAA,BBB,CCC,DDD]

Parameters:
source - 정렬할 문자열의 배열

sortStringArray

public static String[] sortStringArray(Enumeration<String> source)

문자열의 Enemration을 정렬된 배열로 반환한다.

Parameters:
source - 정렬하고자 하는 Enumeration
Returns:
정렬된 문자열 배열

null2void

public static String null2void(String source)

문자열을 받아 null이나 문자열이 space로 이뤄진 " " - 문자열 일 경우 ""으로 변환 한다. 해당 사항 없을 경우 원본 문자열을 리턴 한다.

 String source = null;
 String result = StringHelper.null2void(source);
 
result""를 가지게 된다.

Parameters:
source - 문자열
Returns:
source 변환된 문자열

null2zero

public static int null2zero(String source)

파라미터가 null이나 "", " " 이면 0 리턴 (Trim 여부 true).

 String source = null;
 int result = StringHelper.null2zero(source);
 
result0를 가지게 된다.

Parameters:
source - 문자열
Returns:
변환된 int형

null2float

public static float null2float(String source)

파라미터가 null이나 "", " " 이면 0.0F 리턴 (Trim 여부 true).

 String source = null;
 float result = StringHelper.null2float(source);
 
result0.0F를 가지게 된다.

Parameters:
source - 문자열
Returns:
변환된 float형

null2double

public static double null2double(String source)

파라미터가 null이나 "", " " 이면 0.0D 리턴 (Trim 여부 true).

 String source = null;
 double result = StringHelper.null2double(source);
 
result0.0D를 가지게 된다.

Parameters:
source - 문자열
Returns:
변환된 double형

null2long

public static long null2long(String source)

파라미터가 null이나 "", " " 이면 0L 리턴 (Trim 여부 true).

 String source = null;
 long result = StringHelper.null2long(source);
 
result0를 가지게 된다.

Parameters:
source - 문자열
Returns:
변환된 long형

null2string

public static String null2string(String source,
                                 String value)

파라미터가 null이나 "", " " 이면 value를 리턴, 아니면 source를 리턴

 String source = null;
 String result = StringHelper.null2string(source,"0");
 
result"0"를 가지게 된다.

Parameters:
source - 문자열
Returns:
변환된 문자열

strEquals

public static boolean strEquals(String source,
                                String target)

문장열의 비교시 사용. 기존 String Class의 equals() Method의 여러 문제점을 해결 하기 위함 Method이다.

아래와 같이 두가지의 빈번하고 복잡한 비교 방식을

 1.
 String source = null;

 if(source == null || "".equals(source)){
     ...
 }

 2.
 String target = "?"

 if(source != null && source.equals(target)) {
     ...
 }
 

strEquals() Method를 이용하여 쉽게 할 수 있다.

 1.
 String source = null;

 if(StringHelper.strEquals(source, "")){
     ...
 }

 2.
 String target = "?";

 if(StringHelper.strEquals(source, target)) {
  ...
 }
 

Parameters:
source - 비교 문자열1
target - 비교 문자열2
Returns:
boolean 비교 결과 (true, false)

toSubString

public static String toSubString(String source,
                                 int beginIndex,
                                 int endIndex)

지정된 문자열의 일부분을 리턴함. 기존 String Class의 substring()에서 자주 발생하는 NullpointException을 고려하여 만든 Method이다.

 String source = "200403"
 String result = StringHelper.toSubString(source, 4, 8);
 
resultIndexOutOfBoundException이 발생하지 않고 "03"을 가지게 된다.

Parameters:
source - 원본 문자열
beginIndex - 시작위치
endIndex - 마지막 위치
Returns:
해당 문자열

toSubString

public static String toSubString(String source,
                                 int beginIndex)

지정된 문자열의 일부분을 리턴함. 기존 String Class의 substring()에서 자주 발생하는 NullpointException을 고려하여 만든 Method이다.

 String source = "200403"
 String result = StringHelper.toSubString(source, 8);
 
resultIndexOutOfBoundException이 발생하지 않고 ""을 가지게 된다.

Parameters:
source - 원본 문자열
beginIndex - 시작위치
Returns:
해당 문자열

tokenize

public static List<String> tokenize(String str,
                                    String delims)
문자열을 delims를 기준으로 잘라서 List로 반환한다. delims 들 자체는 token으로 반환되지 않는다. 내부적으로 StringTokenizer를 사용한다.

Parameters:
str -
delims -
returnDelims -
Returns:

tokenize

public static List<String> tokenize(String str,
                                    String delims,
                                    boolean returnDelims)
문자열을 delims를 기준으로 잘라서 List로 반환한다. delims 들 자체도 token으로 반환시킬지 여부를 returnDelims로 지정한다. 내부적으로 StringTokenizer를 사용한다.

Parameters:
str -
delims -
returnDelims -
Returns:

split

public static List<String> split(String str,
                                 String delim)

str 문자열을 delim을 기준으로 split하여 List에 담아준다. String.split(String regexp)에서는 delimiter를 reqular expression으로 표현하는데 비해 이 함수는 delimiter를 그대로 split하므로 빠르게 동작한다.

Parameters:
str - 분할할 문자열
delim - 문자열을 분할하기 위한 구분자
Returns:
List 객체

split

public static void split(String str,
                         String delim,
                         String[] dest,
                         String defStr)
문자열을 delim 기준으로 split하여 주어진 dest 배열에 담는다. dest 배열의 크기 만큼 담기게 되며, 그 이상은 무시된다. 만약 배열의 크기 보다 적게 나뉘게 되면 모자라는 부분은 defStr로 채워진다.

Parameters:
str - 분할할 문자
delim - null 이면 공백문자(" ")를 사용한다.
dest - 분할될 문자가 담길 배열 객체
defStr - 분할 개수가 모자랄 경우 채우기 위해 사용할 문자열

split

public static List<String> split(String str,
                                 String delim,
                                 int cnt,
                                 String defStr)

str 문자열을 delim을 기준으로 split하여 List에 담아준다. cnt 개수 만큼만 담기며, 그 이상은 무시된다. 만약 cnt 보다 적게 나뉘게 되면 모자라는 부분은 defStr로 채워진다. String.split(String regexp)에서는 delimiter를 reqular expression으로 표현하는데 비해 이 함수는 delimiter를 그대로 split하므로 훨씬 빠르게 동작한다.

Parameters:
str - 분할할 문자열
delim - 문자열을 분할하기 위한 구분자, null 이면 공백문자(" ")를 사용한다.
cnt - 분할 개수
defStr - 분할 개수가 모자랄 경우 채우기 위해 사용할 문자열
Returns:
List 객체

replaceLeftSpace

public static String replaceLeftSpace(String source,
                                      String repStr)

해당 문자열의 왼쪽의 WhiteSpace(Character.isWhitespace(char))를 해당 문자로 대체.

 String source = "  300  ";
 String repStr = "0";
 String result  = StringHelper.lSpaceReplace(source, repStr);
 
result"00300 " 을 가지게 된다.

Parameters:
source - 문자열
repStr - 대체 문자열
Returns:
대체된 문자열

replaceRightSpace

public static String replaceRightSpace(String source,
                                       String repStr)

해당 문자열의 오른쪽의 WhiteSpace(Character.isWhitespace(char))를 해당 문자로 대체.

 String source = "  300  ";
 String repStr = "0";
 String result  = StringHelperExt.rSpaceReplace(source, repStr);
 
result" 30000" 을 가지게 된다.

Parameters:
source - 문자열
repStr - 대체 문자열
Returns:
대체된 문자열

unescapeUnicode

public static String unescapeUnicode(String s)
Unicode 로 표현댄 문자들을 실제 문자로 변경한다. 예를 들어 "Hello:World"와 같이 Unicode 표현이 들어간 문자열을 넘기면 실제 문자열로 변경이된 "Hello:World"로 변경되어 반환된다.

Parameters:
s - Unicode 표현이 있는 문자열
Returns:
실제 문자로 변경된 결과

hexStringToByteArray

public static byte[] hexStringToByteArray(String hexStr)

HEX String을 byte array로 반환한다.

Parameters:
hexStr - 16진수 문자열
Returns:
byte []


Copyright © 2014. All Rights Reserved.