[JAVA] String형 Bytes length 구하기

String 길이 구하기

1
2
String test = "테스트";
System.out.println("length : " + test.length());
1
2
# 결과
length : 3

바이트 길이 구하기

1
2
3
4
String test = "테스트";
int length = test.getBytes().length;

System.out.println("length : " + length + " Bytes");
1
2
# 결과
length : 9 Bytes

기본 인코딩이 UTF-8 설정되어있을 경우 한글은 한글자당 3바이트씩 계산됩니다. 한글 한글자당 2바이트씩 나오게 하려면 다음과 같이 인코딩을 설정하면 됩니다.

1
2
3
4
5
String charset = "euc-kr";
String test = "테스트";
int length = test.getBytes(charset).length;

System.out.println("length : " + length + " Bytes");
1
2
# 결과
length : 6 Bytes

인코딩 문자셋에 따라 바이트 길이 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 문자열의 바이크 길이 구하기
* 인코딩 문자셋에 따라 바이크 길이 달라짐.
*
* @param str 문자열
* @param charset 인코딩 문자셋
* @return
*/
private int getByteLength(String str, String charset) {
try {
return str.getBytes(charset).length;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
Share