我有一个字符串需要被出现
替换我的代码:
String value="EMPID,NAME,AGE,ADDRESS,PROJECT,DOMAIN,Work Item $WORKNUMBER$ is assigned to $ASSIGNEDTO$ due to $REASON$,~WORKNUMBER~ASSIGNEDTO~REASON~"
String[] value_split = value.split("\\,");
System.out.println(value_split[6]);
String template=value_split[6];
String var=value_split[7];
String[] bindvar=var.split("~");
String finaltemplate="";
for (String string : bindvar) {
//System.out.println(string);
String valuefromQueue=getQueueLog(string);
//System.out.println(valuefromQueue);
System.out.println(template.replace("$",valuefromQueue ));
}
public static String getQueueLog(String var) {
String resval ="";
if (var == null) {
return var;
}
switch (var) {
case "WORKNUMBER":
resval = "12123123";
break;
case "ASSIGNEDTO":
resval = "RM";
break;
case "REASON":
resval = "NEW LC";
break;
}
return resval;
}
我在String template =工作项$ WORKNUMBER $被分配到$ ASSIGNEDTO $由于$ REASON $
and valuefromQueue = 12123123 RM NEWLC
Expected Output should be :Work Item 12123123 is assigned to RM due to NEWLC
我的输出: 由于12123123REASON12123123,工作项12123123WORKNUMBER12123123被分配到12123123ASSIGNEDTO12123123
答案 0 :(得分:1)
你替换不好,你的模板是$ keyWord $,所以template.replace("$"+string+"$",valuefromQueue )
答案 1 :(得分:0)
a
您要替换`template.replace("$", valuefromQueue)`
的所有匹配项。这些显示为所有占位符($
)的前缀和后缀。输出正是我所期望的。
要获得所需的输出,您需要指定确切的占位符,如下所示:
$WORKNUMBER$
查看您的`template.replace("$WORKNUMBER$", valuefromQueue)`
方法,看起来好像getQueueLog()
包含没有美元符号的占位符字符串(string
,WORKNUMBER
和ASSIGNEDTO
)。因此,您应该可以将其用于REASON
:
replace()
注意:由于您似乎没有在其他地方使用`template.replace("$" + string + "$", valuefromQueue)`
,因此可以缩短此时间:
valuefromQueue
......对此:
for (String string : bindvar) {
String valuefromQueue=getQueueLog(string);
System.out.println(template.replace("$" + string + "$", valuefromQueue));
}