코틀린에서는 다양한 데이터 타입을 바이트 배열로 변환하거나 바이트 배열을 다른 데이터 타입으로 변환하는 함수들을 제공합니다. 이러한 함수들을 통해 데이터를 바이트 단위로 다루거나 네트워크 통신, 파일 입출력 등 다양한 상황에서 사용할 수 있습니다.
1. 문자열을 바이트 배열로 변환하기
문자열을 바이트 배열로 변환하는 가장 간단한 방법은 toByteArray()
함수를 사용하는 것입니다. 이 함수는 문자열을 UTF-8 인코딩으로 변환한 후 바이트 배열로 반환합니다.
val str = "Hello, world!"
val byteArray = str.toByteArray()
2. 숫자를 바이트 배열로 변환하기
숫자를 바이트 배열로 변환하기 위해서는 toByteArray()
함수를 사용할 수 있습니다. 이 함수는 숫자를 Big-endian으로 변환하여 바이트 배열로 반환합니다.
val number = 12345
val byteArray = number.toByteArray()
3. 바이트 배열을 문자열로 변환하기
바이트 배열을 문자열로 변환하기 위해서는 toString(Charset)
함수를 사용합니다. 이 함수에는 Charset
타입의 인자를 전달하여 원하는 인코딩을 설정할 수 있습니다.
val byteArray = byteArrayOf(72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33)
val str = byteArray.toString(Charsets.UTF_8)
4. 바이트 배열을 숫자로 변환하기
바이트 배열을 숫자로 변환하기 위해서는 toInt()
, toLong()
, toShort()
등의 함수를 사용할 수 있습니다. 이러한 함수들은 바이트 배열을 Big-endian으로 변환한 후 해당 숫자 타입으로 반환합니다.
val byteArray = byteArrayOf(0, 0, 48, 57)
val number = byteArray.toInt()
5. 기타 유용한 함수들
코틀린에서는 바이트 배열을 다양한 형태로 변환할 수 있는 여러 유용한 함수들을 제공합니다. 예를 들어, copyOfRange()
함수를 사용하여 바이트 배열의 일부를 추출하거나, contentEquals()
함수를 사용하여 두 바이트 배열이 동일한지 비교할 수도 있습니다.
val byteArray = byteArrayOf(72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33)
val subArray = byteArray.copyOfRange(2, 6)
val isEqual = byteArray.contentEquals(subArray)
위에서 소개한 함수들은 코틀린 표준 라이브러리에 기본적으로 포함되어 있으므로 따로 추가적인 설정이 필요하지 않습니다. 다양한 데이터 타입을 바이트 배열로 변환하거나 바이트 배열을 다른 데이터 타입으로 변환할 때 이러한 함수들을 활용해보세요.