这是一个基础问题,但我应该如何使用Java格式化字符串,例如:
"第{1}步,共{2}步"
在C#中很容易实现。
这是一个基础问题,但我应该如何使用Java格式化字符串,例如:
"第{1}步,共{2}步"
在C#中很容易实现。
$
开头的单词。private static String interpol1(String x){
Field[] ffield = Main.class.getDeclaredFields();
String[] test = x.split(" ") ;
for (String v : test ) {
for ( Field n: ffield ) {
if(v.startsWith("$") && ( n.getName().equals(v.substring(1)) )){
try {
x = x.replace("$" + v.substring(1), String.valueOf( n.get(null)));
}catch (Exception e){
System.out.println("");
}
}
}
}
return x;
}
Apache Commons Text库中的org.apache.commons.text.StringSubstitutor辅助类提供了命名变量替换功能。
Map<String, String> valuesMap = new HashMap<>();
valuesMap.put("animal", "quick brown fox");
valuesMap.put("target", "lazy dog");
String resolved = new StringSubstitutor(valuesMap).replace("The ${animal} jumped over the ${target}.");
System.out.println(resolved); // The quick brown fox jumped over the lazy dog.