SpringFramework/Spring

String 중괄호 매핑 함수 (log.info 대신 사용)

lovineff 2021. 7. 6. 16:02

log.info() 함수와 동일한 방식으로 String 문자를 합치는 함수를 구현

 

사용법

String str = makeStr("{} is test {}", 1234, "abcd");

private String makeStr(String text, Object ...args){
    if(StringUtils.isEmpty(text)){
        return "";
    }

	// 중괄호 쌍이 없는 경우 작업하지 않음
    if(!text.contains("{}")){
        return text;
    }

    StringBuilder sb = new StringBuilder();
    
    // 중괄호 쌍으로 문자열을 나눔
    String[] split = text.split("\\{}");

    for (int i = 0; i < split.length; i++) {
    	// args[i] 값이 중괄호 개수보다 작은 경우 공백으로 입력
        if(StringUtils.isEmpty(split[i].replace("{}", "").trim())){
            sb.append(args.length < i + 1 ? "" : args[i]);
        }else{
            sb.append(split[i].replace("{}", "")).append(args.length < i + 1 ? "" : args[i]);
        }
    }

    return sb.toString();
}