투케이2K

356. (java/자바) [유틸 파일] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환 본문

Java

356. (java/자바) [유틸 파일] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환

투케이2K 2024. 11. 15. 18:28

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Java

- 개발 툴 : AndroidStudio

- 구분 : 유틸 파일

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

    // -----------------------------------------------------------------------------------------
    // TODO [SEARCH FAST] : [RETURN] getByteToString : Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환
    // -----------------------------------------------------------------------------------------
    public static String getByteToString(byte[] bytes){

        /**
         * // -----------------------------------------
         * [stringRangeLength 메소드 설명]
         * // -----------------------------------------
         * 1. Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환
         * // -----------------------------------------
         * 2. 호출 방식 :
         *
         * C_Util.getByteToString(byteArray);
         * // -----------------------------------------
         * 3. 리턴 데이터 :
         *
         * String 문자열 데이터
         *
         * AS-IS : {"reg_name":"TWOK"}���
         * TO-BE : {"reg_name":"TWOK"}
         * // -----------------------------------------
         * */


        // [리턴 변수 선언]
        String returnData = "";
        String M_LOG = "";

        // [로직 처리 실시]
        try {

            // TODO [인풋 데이터 널 체크]
            if (bytes != null && bytes.length > 0){

                
                // [바이트 배열 뒤부터 순회하면서 0이 아닌 값이 나올 때 까지 찾음]
                int endIdx = -1;

                for (int i=bytes.length-1; 0<=i; i--){
                    if (bytes[i] != 0){
                        endIdx = i;
                        break;
                    }
                }

                if (endIdx >= 0){

                    byte[] subBuffer = new byte[endIdx+1];
                    System.arraycopy(bytes, 0, subBuffer,0, endIdx+1);

                    returnData = new String(subBuffer, "UTF-8"); // TODO [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 (Exception e){
            S_Log._printStackTrace_(null, S_FinalMsg.LOG_BUG_STATE, null, e);
            M_LOG = "Exception :: " + String.valueOf(e.getMessage());
        }


        // [로그 출력 실시]
        //*
        // ===============================================================
        S_Log._D_("Byte 바이트 배열 불필요 공간 제거 및 String 문자열 반환", new String[]{
                "M_LOG :: " + String.valueOf(M_LOG),
                "RETURN :: " + String.valueOf(returnData)
        });
        // ===============================================================
        // */


        // [리턴 반환 실시]
        return returnData;
    }

// --------------------------------------------------------------------------------------

 

반응형
Comments