java 문자열 바이트별로 자르기.
영문 숫자 조합의 문자열을 바이트별로 잘라야할 일이 생겼다.
인터넷 검색결과 보통 타이틀 길이를 제한하기위한 용도로만 사용하기에 어쩔수없이 새로만듬.
원하는 바이트의 배열 숫자만큼 그리고 길이가 초과하면 빈칸으로 채운 list를 반환한다.
결과 :
INFO : com.x2trade.base.controller.javaTest - 하이요1
INFO : com.x2trade.base.controller.javaTest - 하이요2
INFO : com.x2trade.base.controller.javaTest - 하이요3
INFO : com.x2trade.base.controller.javaTest - 하이요4
INFO : com.x2trade.base.controller.javaTest - 하이요5
INFO : com.x2trade.base.controller.javaTest -
INFO : com.x2trade.base.controller.javaTest -
소스 :
public void testSampleView()
{
String str = new String("하이요1하이요2하이요3하이요4하이요5");
List<String> strList = cutString(str,10,10,10,10,10,10,10);
for(String a : strList) {
logger.info(a);
}
}
public List<String> cutString(String str,int...cuttingBytes) {
List<String> rtnList = new ArrayList<String>();
if(str == null) str = "";
int maxLength = str.length();
int i=0;
for(int cutBytes : cuttingBytes) {
StringBuffer sb = new StringBuffer("");
if(i>maxLength) {
rtnList.add("");
break;
}
for(;i<maxLength;i++) {
if(sb.toString().getBytes("utf-8").length + str.substring(i, i+1).getBytes("utf-8").length > cutBytes) break;
sb.append(str.substring(i, i+1));
}
rtnList.add(sb.toString());
}
return rtnList;
}
'Dev > Java' 카테고리의 다른 글
자바 컴파일 클래스패스 지정 (0) | 2010.04.01 |
---|---|
java.sql.SQLException: 스트림이 이미 종료되었습니다 (0) | 2010.03.25 |
Full GC (0) | 2010.03.25 |
ftp upload (0) | 2010.03.24 |
ftp 파일삭제. (0) | 2010.03.24 |