농장/Java·Kotlin

[Kotlin] 문자열 바이트 수 구하기 / 바이트 크기

귤발자 2023. 11. 5. 17:45
728x90
반응형

코틀린에서 문자열의 바이트 수(크기)를 구하는 확장함수를 아래와 같이 코드에 추가하여 사용할 수 있다.

val String.byteSize: Int
	get() = toByteArray(Charsets.UTF_8).size

 

클래스 안에 두지 않고 밖에 두어야 여러 클래스들에서 사용이 용이하다.

 

자세한 설명을 아래에서 잇겠다.

 

 

toByteArray()

코틀린의 String 클래스에선 toByteArray()라는 메서드를 지원한다.

문자열로부터 ByteArray를 추출하였을때 이 ByteArray의 크기가 문자열의 바이트 수이다.

fun String.toByteArray(
    charset: Charset = Charsets.UTF_8
): ByteArray

 

기본 파라미터로는 Charset 클래스를 받는다. 디폴트값은 UTF-8이다.

같은 문자열이라도 캐릭터셋(인코딩)에 따라 바이트 수가 달라지므로 캐릭터셋을 정확하게 넣는 것이 중요하다.

 

Kotlin에서 인코딩별 Charset 클래스 추출하기

인코딩 명 명시 방법 (2가지)
ISO-8859-1 Charsets.ISO_8859_1
charset
("ISO-8859-1")
US-ASCII Charsets.US_ASCII 
charset("US-ASCII")
UTF-8 Charsets.UTF_8 
charset("UTF-8")

UTF-16 Charsets.UTF_16 
charset("UTF-16")
UTF-16BE Charsets.UTF_16BE 
charset("UTF-16BE")
UTF-16LE Charsets.UTF_16LE 
charset("UTF-16LE")

 

 

 

 

 

 

참고:

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-byte-array.html

https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/charset.html

728x90
반응형