투케이2K

108. (TWOK/UTIL) [Android/kotlin] C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스 본문

투케이2K 유틸파일

108. (TWOK/UTIL) [Android/kotlin] C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스

투케이2K 2022. 12. 12. 20:00

[설 명]

프로그램 : Android / Kotlin

설 명 : C_Util - string, 날짜, 빌드 정보, 모바일 제어, 형 변환 등 유틸 파일 클래스

 

[소스 코드]

 

package com.example.kotlinproject

import android.app.NotificationManager
import android.content.Context
import android.os.Build
import android.util.DisplayMetrics
import android.util.Log
import android.view.WindowManager
import org.json.JSONObject
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.*

class C_Util {


    /**
     * // -----------------------------------------
     * TODO [클래스 설명]
     * // -----------------------------------------
     * 1. 프로그램 상 필요한 유틸 파일 모음 클래스
     * // -----------------------------------------
     * */





    /**
     * // -----------------------------------------
     * // TODO [빠른 로직 찾기 : 주석 로직 찾기]
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getNowDateTime24Number : 24 시간 형태 현재 날짜 확인 : 20220321143420
     * // -----------------------------------------
     * // [SEARCH FAST] : [VOID] showMobileBuildInfo : 모바일 빌드 정보 확인 : (ex : Build.BRAND)
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getMobileCode : 모바일 버전 코드 확인 : (ex : 1)
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getMobileVersion : 모바일 버전명 확인 : (ex : 1.0.0)
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getMobilePackageName : 애플리케이션 패키지명 확인 : (ex : com.test.app)
     * // -----------------------------------------
     * // [SEARCH FAST] : [VOID] removeAllBadge : 노티피케이션 전체 알림 뱃지 지우기
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getMobileSize : 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getTimeStamp_To_Date : 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 : 20220516073529
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] stringNotNull : String 문자열 데이터 널 판단 실시 : true / false
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 : true / false
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 : true / false
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인 : true / false
     * // -----------------------------------------
     * // [SEARCH FAST] : [RETURN] getTimeStamp : 현재 날짜 및 시간 밀리세컨드 13자리 타임스탬프 값 반환
     * // -----------------------------------------
     * */





    // TODO [companion object >> static 선언 실시]
    companion object {


        // TODO [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
        fun getNowDateTime24() : String {

            /**
             * // -----------------------------------------
             * [getNowDateTime24 메소드 설명]
             * // -----------------------------------------
             * 1. 24 시간 형태 현재 날짜 확인 수행 메소드
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getNowDateTime24()
             * // -----------------------------------------
             * 3. 리턴 데이터 : 2022.03.21 14:34:20 월요일
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                // [현재시간을 가져오기]
                val long_now = System.currentTimeMillis()

                // [현재 시간을 Date 타입으로 변환]
                val t_date = Date(long_now)

                // [날짜, 시간을 가져오고 싶은 형태 선언]
                val t_dateFormat = SimpleDateFormat("yyyy-MM-dd kk:mm:ss E", Locale("ko", "KR"))

                // [현재 시간을 dateFormat 에 선언한 형태의 String 으로 변환]
                val str_date = t_dateFormat.format(t_date)

                // [리턴 변수에 삽입]
                returnData = str_date

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getNowDateTime24() :: 24 시간 형태 현재 날짜 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] getNowDateTime24 : 24 시간 형태 현재 날짜 확인 : 2022.03.21 14:34:20 월요일
        fun getNowDateTime24Number() : String {

            /**
             * // -----------------------------------------
             * [getNowDateTime24Number 메소드 설명]
             * // -----------------------------------------
             * 1. 24 시간 형태 현재 날짜 확인 수행 메소드
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getNowDateTime24Number()
             * // -----------------------------------------
             * 3. 리턴 데이터 : 20220321143420
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                // [현재시간을 가져오기]
                val long_now = System.currentTimeMillis()

                // [현재 시간을 Date 타입으로 변환]
                val t_date = Date(long_now)

                // [날짜, 시간을 가져오고 싶은 형태 선언]
                val t_dateFormat = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))

                // [현재 시간을 dateFormat 에 선언한 형태의 String 으로 변환]
                val str_date = t_dateFormat.format(t_date)

                // [리턴 변수에 삽입]
                returnData = str_date

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getNowDateTime24Number() :: 24 시간 형태 현재 날짜 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [VOID] showMobileBuildInfo : 모바일 빌드 정보 확인 : (ex : Build.BRAND)
        fun showMobileBuildInfo() {

            /**
             * // -----------------------------------------
             * [showMobileBuildInfo 메소드 설명]
             * // -----------------------------------------
             * 1. 모바일 빌드 정보 확인 : (ex : Build.BRAND)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.showMobileBuildInfo()
             * // -----------------------------------------
             * */


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

                // [로그 출력 실시]
                //*
                Log.i("---","---" + "\n")
                Log.d("//===========//","================================================")
                Log.i("","\n"+"[C_Util >> showMobileBuildInfo() :: 모바일 빌드 정보 확인]")
                Log.i("","\n"+"-----------------------------------------")
                Log.i("","\n"+"[BRAND :: "+ Build.BRAND.toString() +"]")
                Log.i("","\n"+"[MODEL :: "+ Build.MODEL.toString() +"]")
                Log.i("","\n"+"[MANUFACTURER :: "+ Build.MANUFACTURER.toString() +"]")
                Log.i("","\n"+"[BOARD :: "+ Build.BOARD.toString() +"]")
                Log.i("","\n"+"[ID :: "+ Build.ID.toString() +"]")
                Log.i("","\n"+"[BOOTLOADER :: "+ Build.BOOTLOADER.toString() +"]")
                Log.i("","\n"+"[DEVICE :: "+ Build.DEVICE.toString() +"]")
                Log.i("","\n"+"[DISPLAY :: "+ Build.DISPLAY.toString() +"]")
                Log.i("","\n"+"[HARDWARE :: "+ Build.HARDWARE.toString() +"]")
                Log.i("","\n"+"[HOST :: "+ Build.HOST.toString() +"]")
                Log.i("","\n"+"[PRODUCT :: "+ Build.PRODUCT.toString() +"]")
                Log.i("","\n"+"[TYPE :: "+ Build.TYPE.toString() +"]")
                Log.i("","\n"+"[USER :: "+ Build.USER.toString() +"]")
                Log.i("","\n"+"[TAGS :: "+ Build.TAGS.toString() +"]")
                Log.i("","\n"+"[TIME :: "+ Build.TIME.toString() +"]")
                Log.d("//===========//","================================================")
                Log.i("---","---" + "\n")
                // */

            }
            catch (e: Exception) {
                e.printStackTrace()
            }

        }





        // TODO [SEARCH FAST] : [RETURN] getMobileCode : 모바일 버전 코드 확인 : (ex : 1)
        fun getMobileCode(mContext: Context) : String {

            /**
             * // -----------------------------------------
             * [getMobileCode 메소드 설명]
             * // -----------------------------------------
             * 1. 모바일 버전 코드 확인 (ex : 1)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getMobileCode(this@A_Intro)
             * // -----------------------------------------
             * 3. 리턴 데이터 : 1
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                // [빌드 버전 코드 : ex) 1]
                val pi = mContext.packageManager.getPackageInfo(mContext.packageName, 0)

                // [리턴 변수에 삽입]
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                    returnData = pi.longVersionCode.toString()
                }
                else {
                    returnData = pi.versionCode.toString()
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getMobileCode() :: 모바일 버전 코드 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] getMobileVersion : 모바일 버전명 확인 : (ex : 1.0.0)
        fun getMobileVersion(mContext: Context) : String {

            /**
             * // -----------------------------------------
             * [getMobileVersion 메소드 설명]
             * // -----------------------------------------
             * 1. 모바일 버전명 확인 : (ex : 1.0.0)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getMobileVersion(this@A_Intro)
             * // -----------------------------------------
             * 3. 리턴 데이터 : 1.0.0
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                // [빌드 버전명 : ex) 1.0.0]
                val pi = mContext.packageManager.getPackageInfo(mContext.packageName, 0)

                // [리턴 변수에 삽입]
                returnData = pi.versionName.toString()

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getMobileVersion() :: 모바일 버전명 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] getMobilePackageName : 애플리케이션 패키지명 확인 : (ex : com.test.app)
        fun getMobilePackageName(mContext: Context) : String {

            /**
             * // -----------------------------------------
             * [getMobilePackageName 메소드 설명]
             * // -----------------------------------------
             * 1. 애플리케이션 패키지명 확인 : (ex : com.test.app)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getMobilePackageName(this@A_Intro)
             * // -----------------------------------------
             * 3. 리턴 데이터 : com.test.app
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                // [패키지 명칭 : ex) com.test.app]
                returnData = mContext.packageName.toString()

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getMobilePackageName() :: 애플리케이션 패키지명 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [VOID] removeAllBadge : 노티피케이션 전체 알림 뱃지 지우기
        fun removeAllBadge(mContext: Context) {

            /**
             * // -----------------------------------------
             * [removeAllBadge 메소드 설명]
             * // -----------------------------------------
             * 1. 노티피케이션 전체 알림 뱃지 지우기
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.removeAllBadge(this@A_Intro)
             * // -----------------------------------------
             * */


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

                // [노티피케이션 알림 뱃지 지우기]
                val notificationManager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
                notificationManager.cancelAll()


                // [로그 출력 실시]
                //*
                Log.i("---","---" + "\n")
                Log.d("//===========//","================================================")
                Log.i("","\n"+"[C_Util >> removeAllBadge() :: 노티피케이션 전체 알림 뱃지 지우기 완료]")
                Log.d("//===========//","================================================")
                Log.i("---","---" + "\n")
                // */

            }
            catch (e: Exception) {
                e.printStackTrace()
            }

        }





        // TODO [SEARCH FAST] : [RETURN] getMobileSize : 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
        fun getMobileSize(mContext: Context) : String {

            /**
             * // -----------------------------------------
             * [getMobileSize 메소드 설명]
             * // -----------------------------------------
             * 1. 모바일 화면 크기 구하기 DP : W / S / M / L / LX / NO
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getMobileSize(this@A_Intro)
             * // -----------------------------------------
             * 3. 리턴 데이터 : M
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""
            var dpWidthValues = ""
            var dpHeightValues = ""


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

                val display = (mContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
                val outMetrics = DisplayMetrics()
                display.getMetrics(outMetrics)
                val density = mContext.resources.displayMetrics.density
                val dpHeight = outMetrics.heightPixels / density
                val dpWidth = outMetrics.widthPixels / density

                val dpWidthValue = dpWidth.toInt()
                val dpHeightValue = dpHeight.toInt()


                /**
                 * // -----------------------------------------
                 *    [장치]   [가로]   [세로]
                 * // -----------------------------------------
                 * 1) Watch =  250dp    250dp
                 * // -----------------------------------------
                 * 2) mobile = 320dp    569dp (s6)
                 * // -----------------------------------------
                 * 3) mobile = 400dp    730dp (note 5)
                 * // -----------------------------------------
                 * 4) mobile = 400dp    810dp (note 10 / LG Q9)
                 * // -----------------------------------------
                 * 5) mobile = 800dp    1280dp (Tab)
                 * // -----------------------------------------
                 * 6) Tablet = 960dp    600dp (Tab)
                 *             1280dp   800dp
                 * // -----------------------------------------
                 */


                if (dpHeightValue < 320) { //0 ~ 319
                    returnData = "W"
                } else if (dpHeightValue < 660) { //320 ~ 659
                    returnData = "S"
                } else if (dpHeightValue < 750) { //660 ~ 749
                    returnData = "M"
                } else if (dpHeightValue < 900) { //750 ~ 899
                    returnData = "L"
                } else if (dpHeightValue < 1600) { //900 ~ 1599
                    returnData = "XL"
                } else {
                    returnData = "NO"
                }

                dpHeightValues = dpHeightValue.toString()
                dpWidthValues = dpWidthValue.toString()

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getMobileSize() :: 모바일 화면 크기 구하기 DP 사이즈]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[모델 :: "+ Build.MODEL.toString() +"]")
            Log.i("","\n"+"[제조사 :: "+ Build.MANUFACTURER.toString() +"]")
            Log.i("","\n"+"[가로 (DP) :: "+ dpWidthValues +"]")
            Log.i("","\n"+"[세로 (DP) :: "+ dpHeightValues +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] getTimeStamp_To_Date : 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 : 20220516073529
        fun getTimeStamp_To_Date(timeStamp : String) : String {

            /**
             * // -----------------------------------------
             * [getTimeStamp_To_Date 메소드 설명]
             * // -----------------------------------------
             * 1. 타임 스탬프에서 Date 24시간 날짜 형식으로 변환 실시 (20220321143420)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getTimeStamp_To_Date("1652686529184")
             * // -----------------------------------------
             * 3. 리턴 데이터 : 20220516073529
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""


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

                if (timeStamp != null && timeStamp.length>0 && timeStamp.isEmpty() == false
                    && timeStamp.trim().equals("") == false && timeStamp.trim().equals("null") == false){

                    // [타임 스탬프 값 (1646295046677) 을 Date 로 변경]
                    val date = Date(timeStamp.toLong())

                    // [타임 스탬프 값을 포맷 Date 형식으로 변경]
                    val sdf = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))

                    // [리턴 변수에 삽입]
                    returnData = sdf.format(date).toString()
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getTimeStamp_To_Date() :: 타임 스탬프 >> 24 시간 형태 Date 형 변환 실시]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT :: "+ timeStamp +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] stringNotNull : String 문자열 데이터 널 판단 실시 : true / false
        fun stringNotNull(data : String) : Boolean {

            /**
             * // -----------------------------------------
             * [stringNotNull 메소드 설명]
             * // -----------------------------------------
             * 1. String 문자열 데이터 널 판단 실시 (true / false)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.stringNotNull("twok")
             * // -----------------------------------------
             * 3. 리턴 데이터 : 문자열 데이터가 널이 아닌 경우 true / 널인 경우 false
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = false


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

                if (data != null && data.length>0 && data.isEmpty() == false
                    && data.trim().equals("") == false && data.trim().equals("null") == false
                    && data.trim().equals("undefined") == false){

                    // [리턴 변수에 삽입]
                    returnData = true
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> stringNotNull() :: String 문자열 데이터 널 판단 실시]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT :: "+ data +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] stringMultiContains : String 문자열 다중 contains 문자 포함 확인 실시 : true / false
        fun stringMultiContains(data : String, containsArray : Array<String>) : Boolean {

            /**
             * // -----------------------------------------
             * [stringMultiContains 메소드 설명]
             * // -----------------------------------------
             * 1. String 문자열 다중 contains 문자 포함 확인 실시 (true / false)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.stringMultiContains("twok,투케이,반갑습니다", arrayOf<String>("twok", "투케이"))
             * // -----------------------------------------
             * 3. 리턴 데이터 : 특정 배열 값을 모두 포함하는 경우 true / 아닌 경우 false
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = false


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

                if (data != null && data.length>0 && data.isEmpty() == false
                    && data.trim().equals("") == false && data.trim().equals("null") == false
                    && data.trim().equals("undefined") == false
                    && containsArray != null && containsArray.isEmpty() == false && containsArray.size > 0){

                    // [변수 선언 실시]
                    var checkContains = true

                    // [for 반복문을 돌면서 contains 체크 실시]
                    for (i in 0 .. containsArray.size-1 step(1)) {
                        if (data.contains(containsArray[i]) == true) {
                        } else {
                            // [하나라도 값을 포함하지 않는 경우 false 지정]
                            checkContains = false
                        }
                    }

                    // [리턴 변수에 삽입]
                    returnData = checkContains
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> stringMultiContains() :: String 문자열 데이터 다중 contains 포함 여부 확인 실시]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT [DATA] :: "+ data +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT [ARRAY] :: "+ Arrays.toString(containsArray) +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] stringJsonObjectEnable : String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 : true / false
        fun stringJsonObjectEnable(data : String) : Boolean {

            /**
             * // -----------------------------------------
             * [stringJsonObjectEnable 메소드 설명]
             * // -----------------------------------------
             * 1. String 문자열 데이터를 Json Object 형식으로 변경 가능 한지 체크 실시 (true / false)
             * // -----------------------------------------
             * 2. 호출 방법 :
             *
             * val data = "{\n" +
             * "  \"userId\":1,\n" +
             * "  \"id\":1\n" +
             * "}"
             *
             * C_Util.stringJsonObjectEnable(data)
             *
             * // -----------------------------------------
             * 3. 리턴 데이터 : Json 형식으로 변경 가능한 경우 true / 아닌 경우 false
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = false


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

                if (data != null && data.length>0 && data.isEmpty() == false
                    && data.trim().equals("") == false && data.trim().equals("null") == false
                    && data.trim().equals("undefined") == false){

                    // [Json Object 형식으로 변경 가능한지 확인 실시]
                    try {

                        val checkJson = JSONObject(data)

                        // [리턴 데이터 삽입 실시]
                        returnData = true

                    } catch (ex: Exception) {
                        ex.printStackTrace();
                    }
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> stringJsonObjectEnable() :: String 문자열 데이터 Json Object 변환 결과]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT :: "+ data +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] stringIsNumber : string 문자열 데이터 모두 정수 구성 여부 확인 : true / false
        fun stringIsNumber(data : String) : Boolean {

            /**
             * // -----------------------------------------
             * [stringIsNumber 메소드 설명]
             * // -----------------------------------------
             * 1. string 문자열 데이터 모두 정수 구성 여부 확인 (true / false)
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.stringIsNumber("1234")
             * // -----------------------------------------
             * 3. 리턴 데이터 : string 문자열 데이터가 모두 정수값으로 된 경우 true / 아니면 false
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = false


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

                if (data != null && data.length>0 && data.isEmpty() == false
                    && data.trim().equals("") == false && data.trim().equals("null") == false
                    && data.trim().equals("undefined") == false){

                    // [Character.isDigit 사용해 정수값 체크 실시]
                    try {

                        // [초기 변수 선언]
                        var checkNum = true
                        
                        // [반복문 수행 실시]
                        for (i in 0 .. data.length-1 step(1)) {

                            if (Character.isDigit(data[i]) == true) { // [숫자]
                            }
                            else { // [문자]
                                if (i == 0 && data[i] == '-' || data[i] == '+') { // [처음 문자가 - , + 인 경우는 통과 실시]
                                } else {
                                    // [데이터 삽입 실시]
                                    checkNum = false
                                }
                            }

                        }

                        // [리턴 변수에 삽입]
                        returnData = checkNum

                    } catch (ex: Exception) {
                        ex.printStackTrace();
                    }
                }

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> stringIsNumber() :: string 문자열 데이터 모두 정수 값 구성 여부 확인 실시]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[INPUT :: "+ data +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }





        // TODO [SEARCH FAST] : [RETURN] getTimeStamp : 현재 날짜 및 시간 밀리세컨드 13자리 타임스탬프 값 반환
        fun getTimeStamp() : String {

            /**
             * // -----------------------------------------
             * [getTimeStamp 메소드 설명]
             * // -----------------------------------------
             * 1. 현재 날짜 및 시간 데이터를 13 자리 타임 스탬프 값으로 반환
             * // -----------------------------------------
             * 2. 호출 방법 : C_Util.getTimeStamp()
             * // -----------------------------------------
             * 3. 리턴 데이터 : 1663031163703
             * // -----------------------------------------
             * */


            // [리턴 변수 선언]
            var returnData = ""
            var nowDate = ""


            // [로직 처리 실시]
            try {
                
                // [타임 스탬프 객체 생성]
                val timestamp = Timestamp(System.currentTimeMillis())

                // [리턴 변수에 삽입]
                returnData = java.lang.String.valueOf(timestamp.getTime()) // 타임 스탬프 밀리 세컨드
                
                // [현재 날짜 및 시간 검증]
                val date = Date(returnData.toLong())

                // [타임 스탬프 값을 포맷 Date 형식으로 변경]
                val sdf = SimpleDateFormat("yyyyMMddkkmmss", Locale("ko", "KR"))
                
                // [현재 날짜 및 시간 출력]
                nowDate = sdf.format(date).toString()

            }
            catch (e: Exception) {
                e.printStackTrace()
            }


            // [로그 출력 실시]
            //*
            Log.i("---","---" + "\n")
            Log.d("//===========//","================================================")
            Log.i("","\n"+"[C_Util >> getTimeStamp() :: 현재 날짜 및 시간 13 자리 타임 스탬프 확인]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[NOW_DATE :: "+ nowDate +"]")
            Log.i("","\n"+"-----------------------------------------")
            Log.i("","\n"+"[RETURN :: "+ returnData +"]")
            Log.d("//===========//","================================================")
            Log.i("---","---" + "\n")
            // */


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

        }


    } // [companion 종료]


} // TODO [클래스 종료]

 

 

 

반응형
Comments