문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 마지막 판 양쪽 다음 판 | ||
java:string_format [2016/12/15 08:45] kwon37xi [MessageFormat] |
java:string_format [2019/02/22 20:26] kwon37xi |
||
---|---|---|---|
줄 1: | 줄 1: | ||
====== Java String Format ====== | ====== Java String Format ====== | ||
+ | |||
+ | ===== String.format() ===== | ||
+ | * [[https:// | ||
+ | |||
+ | ===== Slf4j MessageFormatter ===== | ||
+ | * [[https:// | ||
+ | * [[java: | ||
+ | * '' | ||
+ | * Java의 '' | ||
+ | |||
+ | <code java> | ||
+ | import org.slf4j.helpers.MessageFormatter; | ||
+ | |||
+ | // sf의 뜻? simple format, slf4j format, ... | ||
+ | // 주의: " | ||
+ | public static String sf(String messagePattern, | ||
+ | return MessageFormatter.arrayFormat(messagePattern, | ||
+ | } | ||
+ | |||
+ | // 위 sf 메소드를 static import 하여 사용한다. | ||
+ | |||
+ | String message = sf(" | ||
+ | </ | ||
+ | |||
+ | 포맷팅 예제 | ||
+ | < | ||
+ | sf(" | ||
+ | -> "Set {1,2,3} is not equal to 1,2." | ||
+ | |||
+ | // { 에대 한 escape 은 \\{ | ||
+ | sf(" | ||
+ | -> "Set {} is not equal to 1,2." | ||
+ | |||
+ | // \ 자체를 사용하려면 \\\\ | ||
+ | sf(" | ||
+ | -> "File name is C: | ||
+ | |||
+ | </ | ||
===== MessageFormat ===== | ===== MessageFormat ===== | ||
줄 16: | 줄 54: | ||
</ | </ | ||
+ | ===== org.apache.commons.lang.text.StrSubstitutor ===== | ||
+ | * [[https:// | ||
+ | |||
+ | <code java> | ||
+ | // 시스템 프라퍼티 | ||
+ | StrSubstitutor.replaceSystemProperties( | ||
+ | "You are running with java.version = ${java.version} and os.name = ${os.name}." | ||
+ | | ||
+ | // 일반적인 사용법 | ||
+ | Map valuesMap = HashMap(); | ||
+ | valuesMap.put(" | ||
+ | valuesMap.put(" | ||
+ | String templateString = "The ${animal} jumped over the ${target}."; | ||
+ | StrSubstitutor sub = new StrSubstitutor(valuesMap); | ||
+ | String resolvedString = sub.replace(templateString); | ||
+ | |||
+ | // 결과 | ||
+ | The quick brown fox jumped over the lazy dog. | ||
+ | </ | ||