用动态值替换字符串

时间:2017-06-14 11:44:06

标签: java

我有'{YY}-{MM}-{SEQNO}'这样的模式。我想用动态值替换上面的字符串。

例如

{YY} with - 17 
{MM} with - 06
{SEQNO} WITH - 0001

java中的方法是什么?

3 个答案:

答案 0 :(得分:0)

使用String.replace()

String template = "'{YY}-{MM}-{SEQNO}'";
template = template.replace("{YY}", "17");
template = template.replace("{MM}", "06");
template = template.replace("{SEQNO}", "0001");

(感谢@RealSkeptic的改进)。

答案 1 :(得分:0)

如果您想打印如17-06-0001使用

System.out.printf("%S-%S-%S\n", ""+17, ""+06, ""+0001);

或 如果要打印如17-6-1使用

System.out.printf("%d-%d-%d\n", 17, 06, 0001);

答案 2 :(得分:0)

方法一(更简单的方法):

String a = "{YY}-{MM}-{SEQNO}";
a = a.replace("YY", "17").replace("MM", "06").replace("SEQNO", "0001");
System.out.println(a);
//Output:  {17}-{06}-{0001}

方法二:

a = Pattern.compile("YY").matcher(a).replaceAll("17");
a = Pattern.compile("MM").matcher(a).replaceAll("06");
a = Pattern.compile("SEQNO").matcher(a).replaceAll("0001");
System.out.println("My Output is : " +a);
//Output:  My Output is : {17}-{06}-{0001}

方法三:

查看this question -without using replace()