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
반응형
'프로그래밍 > Java' 카테고리의 다른 글
자바 특정 날짜에 요일 구하는 메소드 (1) | 2021.04.11 |
---|---|
리눅스 덤프 파일(Thread, Heap dump) 생성하기 (1) | 2021.03.17 |
자바 java.lang.UnsupportedClassVersionError: Bad version number in .class file 오류 해결하기 (2) | 2021.01.10 |
윈도우 class파일 jar로 압축하기 (1) | 2020.08.30 |
자바 String타입을 Date타입으로 변환(string to date) (0) | 2019.04.28 |