我需要将{0}替换为“D1”,将{1}替换为“X0”,将{2}替换为“DP12001”等等... 我试着用正则表达式编写,就像这样。
String header = "{0}^{1}^{2}^{3}^{4}^{5}^{6}^{7}^{8}^{9}^{10}";
String _header = "";
String rl = "D1,X0,DP12001,1,2,10021521012,1,141128135639,1,12,0";
logger.debug("rl-->{}", rl);
String[] parts = rl.split(",");
int partCount = 0;
for (String part : parts) {
_header = header.replaceAll("\\{." + partCount + "\\}", part);
partCount++;
}
我需要像这样的最终输出。 “D1 ^ X0 ^ DP12001 ^ 1 ^ 2 ^ 10021521012 ^ 1 ^ 141128135639 ^ 1 ^ 12 ^ 0”
但我的代码没有按预期工作。
答案 0 :(得分:4)
您可以在此处使用MessageFormat
:
String header = "{0}^{1}^{2}^{3}^{4}^{5}^{6}^{7}^{8}^{9}^{10}";
String rl = "D1,X0,DP12001,1,2,10021521012,1,141128135639,1,12,0";
String[] parts = rl.split(",");
System.out.println(MessageFormat.format(header, parts));
答案 1 :(得分:0)
首先,您需要记住replaceAll()
和replace
会返回结果字符串。
既然你在做
_header = header.replaceAll("\\{." + partCount + "\\}", part);
,旧的header
在每个循环中反复使用。
其次,我认为你可以在这种情况下使用replace
,如下所示:
String header = "{0}^{1}^{2}^{3}^{4}^{5}^{6}^{7}^{8}^{9}^{10}";
String _header = header;
String rl = "D1,X0,DP12001,1,2,10021521012,1,141128135639,1,12,0";
String[] parts = rl.split(",");
int partCount = 0;
for (String part : parts) {
_header = _header.replace("{" + partCount + "}", part);
partCount++;
}
System.out.println(_header);