728x90
반응형

자바에서 Byte 배열로 문자열 자르는 방법에 대해 알아보겠습니다.

고객사에서 SMS서비스를 사용하여 DB에 insert를 해주는 로직이 있는데,

SMS에서 최대 발송 길이 제한이 있다고하여 밸리데이션을 추가해주었습니다.

String a = "ABCDEFGHIJK";
int msgByteCheck = a.getBytes("UTF-8").length; // a의 문자열 길이
String subA = getMaxByteString(a, 5); 

//str = 문자열
//maxLen = 자를 길이
public static String getMaxByteSubString(String str, int maxLen) throws UnsupportedEncodingException {
	StringBuilder sb = new StringBuilder();
	int curLen = 0;
	String curChar;
        
	for (int i = 0; i < str.length(); i++) {
		curChar = str.substring(i, i + 1);
		curLen += curChar.getBytes("UTF-8").length;
		if (curLen > maxLen)
			break;
        else
            sb.append(curChar);
        }
	return sb.toString();
}

 

728x90
반응형

+ Recent posts