Notice
Recent Posts
Recent Comments
Link
투케이2K
533. (kotlin/코틀린) [유틸 파일] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환 본문
Kotlin
533. (kotlin/코틀린) [유틸 파일] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환
투케이2K 2024. 11. 15. 18:31[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Kotlin
- 개발 툴 : AndroidStudio
- 구분 : 유틸 파일
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [RETURN] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환
// -----------------------------------------------------------------------------------------
fun getByteToString(bytes: ByteArray?): String {
/**
* // -----------------------------------------
* [stringRangeLength 메소드 설명]
* // -----------------------------------------
* 1. Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환
* // -----------------------------------------
* 2. 호출 방식 :
*
* C_Util.getByteToString(byteArray);
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* String 문자열 데이터
*
* AS-IS : {"reg_name":"TWOK"}���
* TO-BE : {"reg_name":"TWOK"}
* // -----------------------------------------
*/
// [리턴 변수 선언]
var returnData = ""
var M_LOG = ""
// [로직 처리 실시]
try {
// TODO [인풋 데이터 널 체크]
if (bytes != null && bytes.size > 0) {
// [바이트 배열 뒤부터 순회하면서 0이 아닌 값이 나올 때 까지 찾음]
var endIdx = -1
var i = bytes.size - 1
while (0 <= i) {
if (bytes[i].toInt() != 0) {
endIdx = i
break
}
i--
}
if (endIdx >= 0) {
val subBuffer = ByteArray(endIdx + 1)
System.arraycopy(bytes, 0, subBuffer, 0, endIdx + 1)
returnData = String(subBuffer, Charsets.UTF_8)
M_LOG = "Success :: Byte To String"
} else {
M_LOG = "Error :: endIdx Search Error"
}
} else {
M_LOG = "Error :: Input Data Validation Check Error"
}
} catch (e: Exception) {
S_Log._printStackTrace_(null, S_FinalMsg.LOG_BUG_STATE, null, e)
M_LOG = "Exception :: " + e.message.toString()
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._D_("Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환", arrayOf(
"M_LOG :: $M_LOG",
"RETURN :: $returnData"
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
// --------------------------------------------------------------------------------------
반응형
'Kotlin' 카테고리의 다른 글
Comments