개발/Kotlin

Kotlin Byte Array 다루기

MiJey 2020. 1. 14. 17:01
// 패킷 로그 찍는 용도
fun byteArray2String(value: ByteArray?): String {
    value ?: return "null"
    
    if (value.isEmpty()) {
    	return "empty"
    }

    return try {
        val HEX_ARRAY = "0123456789ABCDEF".toCharArray()
        val out = CharArray(value.size * 3 - 1)
        
        for (j in value.indices) {
            val v = value[j].toInt() and 0xFF
            out[j * 3] = HEX_ARRAY[v.ushr(4)]
            out[j * 3 + 1] = HEX_ARRAY[v and 0x0F]
            
            if (j != value.size - 1)
            	out[j * 3 + 2] = '-'
        }
        
        "(0x) " + String(out)
    } catch (e: Exception) {
    	"error"
    }
}