Java 替换字符串中的字段值
使用Google Guava是否有字符串实用程序可以轻松替换字符串字段,如下所示:Java 替换字符串中的字段值,java,guava,Java,Guava,使用Google Guava是否有字符串实用程序可以轻松替换字符串字段,如下所示: String query = mydb..sp_mySP ${userId}, ${groupId}, ${someOtherField} StringUtil.setString(query) .setField("userId", "123") .setField("groupId", "456") .setField("someOtherField", "12-12-12"); 在那里
String query = mydb..sp_mySP ${userId}, ${groupId}, ${someOtherField}
StringUtil.setString(query)
.setField("userId", "123")
.setField("groupId", "456")
.setField("someOtherField", "12-12-12");
在那里我可以做这样的事情:
String query = mydb..sp_mySP ${userId}, ${groupId}, ${someOtherField}
StringUtil.setString(query)
.setField("userId", "123")
.setField("groupId", "456")
.setField("someOtherField", "12-12-12");
那么结果字符串将是:
mydb..sp_mySP 123, 456, 12-12-12
当然,在操作之前设置字符串字段模式,如${}
无论如何,这是我的方法:
public class StringUtil {
public class FieldModifier {
private String s;
public FieldModifier(String s){
this.s = s;
}
public FieldModifier setField(String fieldName, Object fieldValue){
String value = String.valueOf(fieldValue);
s = modifyField(s, fieldName, value);
return new FieldModifier(s);
}
public String get() {
return s;
}
private String modifyField(String s, String fieldName, String fieldValue){
String modified = "";
return modified;
}
}
public FieldModifier parse(String s){
FieldModifier fm = new FieldModifier(s);
return fm;
}
}
因此,在本例中,我只需要将实际代码放入modifyField
函数中,该函数将以简单的方式修改字符串。另外,如果有一种方法可以使parse
函数是静态的,这样我就可以只执行StringUtil.parse(…)
,而不执行new StringUtil().parse(…)
,这看起来确实不太好。是的
番石榴里没有这种东西。您可以看看(Spring Expression Language),它可以做字符串模板,或者其他模板框架,例如或。使用Guava?没有 尽管最近要求进行增强以支持此()
无论如何,使用Apache Commons Lang仍然可以做到这一点。这不是一个“命名”替代,我认为这是xybrek所要求的。是的,模板引擎可能就是您想要的。