Java 정규식으로 ${name} 형식의 문자열 템플릿 인스턴스 구현
여러분이 이런 상황을 겪은 적이 있을 거라고 믿습니다. 개발 과정에서 사이트 편지와 같은 수요를 충족시킬 때 우리는 문자열 템플릿을 자주 사용해야 합니다. 예를 들어
${name}。。。。
안에 있는 ${name}
은 사용자의 사용자 이름으로 바꿀 수 있습니다.다음은 정규 표현식을 사용하여 간단하게 이 기능을 실현합니다.
/**
* , ("hello ${name}",{name:"xiaoming"})
* :
* @param content
* @param map
* @return
*/
public static String renderString(String content, Map<String, String> map){
Set<Entry<String, String>> sets = map.entrySet();
for(Entry<String, String> entry : sets) {
String regex = "\\$\\{" + entry.getKey() + "\\}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(content);
content = matcher.replaceAll(entry.getValue());
}
return content;
}
map
에 키 값 쌍을 저장한 다음 키 값 쌍의 집합을 가져와 집합을 옮겨다니며 문자열을 렌더링합니다인스턴스 테스트:
@Test
public void renderString() {
String content = "hello ${name}, 1 2 3 4 5 ${six} 7, again ${name}. ";
Map<String, String> map = new HashMap<>();
map.put("name", "java");
map.put("six", "6");
content = StringHelper.renderString(content, map);
System.out.println(content);
}
두 개의 변수가 교체되어야 하는데name
와six
, 대응하는 값은 각각Java
과 6이며, 동시name
에 두 번 호출되었다.결과:
hello java, 1 2 3 4 5 6 7, again java.
총결산이상은 자바가 정규 표현식을 이용하여 ${name} 형식의 문자열 템플릿을 실현하는 데 관한 모든 내용입니다. 본고의 내용은 여러분의 학습이나 업무에 어느 정도 도움이 될 수 있기를 바랍니다. 의문이 있으면 메시지를 남겨 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.