투케이2K

368. (java/자바) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수 본문

Java

368. (java/자바) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수

투케이2K 2026. 4. 4. 13:03
728x90
반응형

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Java

 

[소스 코드]

 

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

- 언어 : Java / Kotlin


- 개발 툴 : AndroidStudio


- 구분 : 유틸 파일 / 정규식 / Mac Address Format


- 사전) 👉 정규식 (Regex) 간략 설명 : 

  >> 정규식 (Regex) 는 문자열을 검사하고 , 검색하고 , 추출하고 , 변환(치환) 하는 패턴 언어입니다.

  >> 정규식 (Regex) 는 자바에서 java.util.regex 패키지를 사용합니다.

  >> 자바 정규식의 핵심 클래스 2개 : 

    - Pattern : 정규식 자체 (컴파일된 패턴)
    - Matcher : 패턴을 문자열에 적용하고 결과 처리

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






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

  // -------------------------------------------------------------
  // TODO [SEARCH FAST] : [HTTP] : 공통 Mac 주소 ':' 세미콜론 포맷
  // -------------------------------------------------------------
  public static String getMacFormat(String macNum){

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

      // [로직 처리 수행]
      try {
          if (C_Util.stringNotNull(macNum) == true){ // Not Null

              // ------------------------------------------------------------
              // TODO 입력 된 값이 Mac 형식에 맞게 포맷 수행 실시
              // ------------------------------------------------------------
              // TODO 인풋값으로 들어온 데이터에서 특수문자 모두 제거 > 문자열 길이 2 나누기 구성 후 > ':' 문자 삽입 수행
              // ------------------------------------------------------------
              String replaceMacNum = macNum;
              replaceMacNum = replaceMacNum.replaceAll("[!@#$%^&*().,?:;/_{}+=-]", ""); // 특수문자 지우기 그룹 지정
              /*
              replaceMacNum = replaceMacNum.replaceAll("-", ""); // 개별 지우기
              replaceMacNum = replaceMacNum.replaceAll("_", ""); // 개별 지우기
              replaceMacNum = replaceMacNum.replaceAll("[.\\s]", ""); // 개별 지우기
              replaceMacNum = replaceMacNum.replaceAll(":", ""); // 개별 지우기
              replaceMacNum = replaceMacNum.replaceAll("/", ""); // 개별 지우기
              // */
              replaceMacNum = replaceMacNum.replaceAll(" ", ""); // 공백 제거

              // TODO 치환된 문자열 null 체크 및 2 나누기 만족 체크
              if (C_Util.stringNotNull(replaceMacNum) == true
                      && (replaceMacNum.length() % 2 == 0)){

                  // [반복문을 수행하면 문자 삽입 수행]
                  int cntPlus = 2; // TODO 초기 0, 1 이후에 문자 표시 될 위치 지정
                  for (int i=0; i<replaceMacNum.length(); i++){

                      if (i == cntPlus){
                          returnData += ":";

                          // TODO 01:23:34: ... 형태로 구성
                          cntPlus += 2;
                      }

                      returnData += String.valueOf(replaceMacNum.charAt(i)); // 한글자 추출

                  }
              }
              else {
                  S_Log.e("KWON_TWOK", ">>>>>>>>>>>>>>>>>>>>>>> [getMacFormat] : Error = replaceMacNum length match error >>>>>>>>>>>>>>>>>>>>>>>");
              }

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

      // ------------------------------------------------------------
      // TODO return ex : AB:CD:EF:GH:IJ:KL
      // ------------------------------------------------------------
      // TODO return ex : 01:23:34:56:78:90
      // ------------------------------------------------------------

      S_Log.w("KWON_TWOK", ">>>>>>>>>>>>>>>>>>>>>>> [getMacFormat] : Length = " + String.valueOf(returnData.length()) + " / " + String.valueOf(returnData) + " >>>>>>>>>>>>>>>>>>>>>>>");

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

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






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

[stringRegexpContains : String 문자열에 특정 정규식 패턴 포함 확인]

https://kkh0977.tistory.com/5854

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


[matches 정규식 - matches 정규식을 사용해 문자,숫자,특수문자 여부 확인]

https://kkh0977.tistory.com/53

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


[matches 정규식 (RegEx) 사용법 정리 - 특수문자 제거 및 지정 문자 허용]

https://kkh0977.tistory.com/1098

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

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