투케이2K

559. (kotlin/코틀린) [유틸 파일] getRandomString - 안정적 아스키 문자 사용해 입력 된 길이 만큼 랜덤 문자열 생성 본문

Kotlin

559. (kotlin/코틀린) [유틸 파일] getRandomString - 안정적 아스키 문자 사용해 입력 된 길이 만큼 랜덤 문자열 생성

투케이2K 2026. 1. 1. 17:21
728x90

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

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

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 구분 : 유틸 파일 / 간단 소스 / ASCII / Random


- 사전) ASCII 문자 간단 설명 : 

  >> 아스키 코드 (ASCII) 는 영어 알파벳, 숫자, 특수 문자 등을 컴퓨터에서 사용하기 위해 각 문자에 할당된 숫자 코드입니다

    - 아스키 코드는 128개의 문자조합을 제공하는 7 비트 부호 체계입니다

    - 알파벳 , 숫자, 특수 기호 등을 표현하기 위해서는 각 1 byte 값 (8 bit) 을 사용합니다 

  >> 제어 문자 : 0–31, 127 : \n, \t

  >> 숫자 : 48–57 : 0–9

  >> 대문자 : 65–90 : A–Z

  >> 소문자 : 97–122 : a–z

  >> 특수문자 : 나머지 : ! @ # $ % 등

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






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

fun getRandomString(length: Int): String {

    /**
    * // -----------------------------------------
    * [getRandomString 메소드 설명]
    * // -----------------------------------------
    * 1. 랜덤 문자열 생성 반환
    * // -----------------------------------------
    * 2. 호출 방식 :
    *
    * C_Util.getRandomString(10)
    *
    * // -----------------------------------------
    * 3. 리턴 데이터 :
    *
    * 3C47oFbskO
    * // -----------------------------------------
    */


    // [변수 선언 실시]
    var returnData = ""
    var M_LOG = ""


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

        if (length > 0) {
            val CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

            val random = Random()
            val result = StringBuilder(length)

            for (i in 0 until length) {
                val index = random.nextInt(CHARS.length)
                result.append(CHARS[index])
            }

            returnData = result.toString()

            M_LOG = "[Success] : Random String Create"

        } else {
            M_LOG = "[Error] : Input Length Size Error"
        }

    } catch (e: Exception) {
        S_Log._printStackTrace_(null, S_FinalData.LOG_BUG_STATE, null, e)

        M_LOG = "[Exception] : " + e.message.toString()
    }


    // [로그 출력]
    S_Log._D_("랜덤 문자열 생성 반환", arrayOf(
        "INPUT [Length] :: $length",
        "M_LOG :: $M_LOG",
        "RETURN :: $returnData"
    ))


    // [리턴 데이터 반환 실시]
    return returnData
}

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






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[포맷] : [ASCII] 아스키 코드 (ASCII) 문자 표현 방식 포맷 설명

https://kkh0977.tistory.com/7688

https://blog.naver.com/kkh0977/223754005405?trackingCode=blog_bloghome_searchlist


[ASCII CODE , ANSI CODE , UNI CODE , UTF-8 , UTF-16 개념 설명]

https://blog.naver.com/kkh0977/222738078154?trackingCode=blog_bloghome_searchlist


[Math.random 랜덤 알파벳 문자 표시 - Math.random 랜덤 객체를 사용해 알파벳 문자 생성 실시]

https://blog.naver.com/kkh0977/222195162326?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------
 
728x90
반응형
Comments