언어/Java

[Java]camelUtil변환 사용하기

antoroong 2025. 2. 23. 23:46

목적

예) admin_seq 라는 변수는 adminSeq라는 변수로 바꾸어 반환

 

  1. ‘_’ 문자열이 들어오면 변환하는 util class 생성
package com.sh.test.common.util;

/**
 * 입력 문자열에 대하여 Camel 표기법으로 변환을 지원하는 Utility Class 이다.
 */
public final class CamelUtil {
	
	private CamelUtil() {
		
	}

	/**
	 * underscore ('_') 가 포함되어 있는 문자열을 Camel Case ( 낙타등
	 * 표기법 - 단어의 변경시에 대문자로 시작하는 형태. 시작은 소문자) 로 변환해주는
	 * utility 메서드 ('_' 가 나타나지 않고 첫문자가 대문자인 경우도 변환 처리
	 * 함.)
	 * @param underScore
	 *        - '_' 가 포함된 변수명
	 * @return Camel 표기법 변수명
	 */
	public static String convert2CamelCase(String underScore) {

		// '_' 가 나타나지 않으면 이미 camel case 로 가정함.
		// 단 첫째문자가 대문자이면 camel case 변환 (전체를 소문자로) 처리가
		// 필요하다고 가정함. --> 아래 로직을 수행하면 바뀜
		if (underScore.indexOf('_') < 0 && Character.isLowerCase(underScore.charAt(0))) {
			return underScore;
		}
		StringBuilder result = new StringBuilder();
		boolean nextUpper = false;
		int len = underScore.length();

		for (int i = 0; i < len; i++) {
			char currentChar = underScore.charAt(i);
			if (currentChar == '_') {
				nextUpper = true;
			} else {
				if (nextUpper) {
					result.append(Character.toUpperCase(currentChar));
					nextUpper = false;
				} else {
					result.append(Character.toLowerCase(currentChar));
				}
			}
		}
		return result.toString();
	}
}

 

2.Map이든 VO이든 DTO이든 Bean이든 변수값을 받을 class파일 생성

package com.sh.test.common.util;

import org.apache.commons.collections4.map.ListOrderedMap;

/**
 * Camel Case 표기법 변환 처리를 포함하는 Map 확장 클래스
 */
public class EgovMap extends ListOrderedMap {

	private static final long serialVersionUID = 6723434363565852261L;

	/**
	 * key 에 대하여 Camel Case 변환하여 super.put
	 * (ListOrderedMap) 을 호출한다.
	 * @param key
	 *        - '_' 가 포함된 변수명
	 * @param value
	 *        - 명시된 key 에 대한 값 (변경 없음)
	 * @return previous value associated with specified
	 *         key, or null if there was no mapping for
	 *         key
	 */
	@Override
	public Object put(Object key, Object value) {
		
//어떻게 바뀌는지 찍어보자 LTTER_SEQ가 letterSeq로 바뀔 것이다.
		System.out.println("key: "+key+",value :"+value);
		System.out.println("CamelUtil.convert2CamelCase((String) key) :"+CamelUtil.convert2CamelCase((String) key)+", value:"+value);
		
		return super.put(CamelUtil.convert2CamelCase((String) key), value);
	}

}