Java 替换字符串中的字段值

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"); 在那里

使用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");
那么结果字符串将是:

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所要求的。是的,模板引擎可能就是您想要的。