Notice
Recent Posts
Recent Comments
Link
투케이2K
368. (java/자바) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수 본문
Java
368. (java/자바) [유틸 파일] getMacFormat - 맥 주소 (Mac Address) 형식에 맞게 세미콜론 자릿수 포맷 함수
투케이2K 2026. 4. 4. 13:03728x90
반응형
[개발 환경 설정]
개발 툴 : 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
반응형
'Java' 카테고리의 다른 글
Comments
