Notice
Recent Posts
Recent Comments
Link
투케이2K
116. (kotlin/코틀린) [유틸 파일] hex string to byteArray 헥사 문자열 데이터를 바이트 배열로 변환 실시 본문
Kotlin
116. (kotlin/코틀린) [유틸 파일] hex string to byteArray 헥사 문자열 데이터를 바이트 배열로 변환 실시
투케이2K 2022. 12. 19. 22:02[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// TODO [SEARCH FAST] : [hexStringToByteArray] : 헥사 문자열 >> 바이트 배열로 반환
fun hexStringToByteArray(data: String?) : ArrayList<Byte>? {
/**
* // -----------------------------------------
* [hexStringToByteArray 메소드 설명]
* // -----------------------------------------
* 1. 헥사 문자열 >> 바이트 배열로 반환
* // -----------------------------------------
* 2. 호출 방법 : C_Encryption.hexStringToByteArray("0x68 0x65 0x6C 0x6C 0x6F")
* // -----------------------------------------
* 3. 리턴 데이터 : byte array 바이트 배열 데이터 [104, 101, 108, 108, 111]
* // -----------------------------------------
* */
// [리턴 변수 선언]
var returnData: ArrayList<Byte>? = null
// [로직 처리 실시]
try {
// [널 여부 체크]
if (C_Util.stringNotNull(data.toString()) == true) {
// [공백 제거 실시]
val str = data.toString().replace(" ", "")
// [헥사 문자열 제거]
var hex = str.replace("0x", "")
hex = hex.replace("0X", "")
hex = hex.toUpperCase()
// [문자열 체크 실시 (나누기 2)]
if (C_Util.stringNotNull(hex) == true){
var intCount = (hex.length%2) == 0
if (intCount == true){ // [짝수 일 경우 : 정상]
try {
returnData = ArrayList<Byte>()
for (i in 0..hex.length step 2) {
if (i < hex.length){ // [문자열 길이보다 작을 때 까지]
// [hex to byte]
var subString = hex.substring(i until i+2)
returnData.add(BigInteger(subString, 16).toByte())
}
}
}
catch (e: Exception) {
e.printStackTrace()
}
}
}
else {
Log.i("---","---" + "\n")
Log.e("//===========//","================================================")
Log.i("","\n"+"[C_Encryption >> hexStringToByteArray() :: 헥사 문자열 >> 바이트 배열로 반환 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[error :: "+ "hex string null 널 임" +"]")
Log.e("//===========//","================================================")
Log.i("---","---" + "\n")
}
}
else {
Log.i("---","---" + "\n")
Log.e("//===========//","================================================")
Log.i("","\n"+"[C_Encryption >> hexStringToByteArray() :: 헥사 문자열 >> 바이트 배열로 반환 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[error :: "+ "데이터 null 널 임" +"]")
Log.e("//===========//","================================================")
Log.i("---","---" + "\n")
}
}
catch (e: Exception) {
e.printStackTrace()
}
// [로그 출력 실시]
//*
Log.i("---","---" + "\n")
Log.d("//===========//","================================================")
Log.i("","\n"+"[C_Encryption >> hexStringToByteArray() :: 헥사 문자열 >> 바이트 배열로 반환 실시]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[INPUT :: "+ data +"]")
Log.i("","\n"+"-----------------------------------------")
Log.i("","\n"+"[RETURN :: "+ returnData.toString() +"]")
Log.d("//===========//","================================================")
Log.i("---","---" + "\n")
// */
// [리턴 반환 실시]
return returnData
}
[결과 출력]
반응형
'Kotlin' 카테고리의 다른 글
Comments