${...}
으로 묶인 문자열을 검색하고 해당 문자열을 ${...}
을 바꾸는 데 사용할 값이 들어있는 HashMap의 키로 사용하고 싶습니다. 다음 예에서Java에서 HashMap의 키로 문자열 대체의 역 참조를 사용하는 방법은 무엇입니까?
는 문자열 Master_${field1}_${field2}_End
는 Master_slave1_slave2_End
로 변환되어야한다
package com.stackoverflow;
import java.util.HashMap;
import java.util.Map;
public class RegExReplace {
public static void main(String[] args) {
// String string = "Master_${field1}_${field2}_${nonexisting}_End";
String string = "Master_${field1}_${field2}_End";
Map<String, String> toBeInserted = new HashMap<String, String>();
toBeInserted.put("field1", "slave1");
toBeInserted.put("field2", "slave2");
toBeInserted.put("field3", "slave3");
String pattern = "\\$\\{([a-zA-Z0-9\\-_]*)\\}";
String replace = "$1";
// System.out.println(string.replaceAll(pattern, replace));
System.out.println(string.replaceAll(pattern, toBeInserted.get(replace)));
} // END: main()
} // END: class
것이 가능하다 (방법)에서, HashMap에 대한 역 참조 키로서 사용 하는가?
다른 문자열을 만들 수 있습니다 :'String mapKey = string.replaceAll (pattern, "$ 1")'그리고 두번째 대체에서'mapKey'를 사용하십시오 – BackSlash