java - 用java正则表达式替换大括号之间的特定文本

标签 java regex string replace replaceall

我需要将 {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”

但是我的代码没有按预期工作。

最佳答案

您可以使用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));

( live demo )

关于java - 用java正则表达式替换大括号之间的特定文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27373324/

相关文章:

java - JSF 2.0(Primefaces) - 复合组件不可访问,如果通过 ID 引用

java - ANTLR 输出及其顺序

Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK) 必须可用才能运行 eclipse

php - 解析主题标签的文本并使用 php 替换为链接

python - 将列表中的大整数值拆分为多个列表中的较小整数

java - 对象克隆和了解引用中的底层对象 (JAVA)

JavaScript:小数格式的正则表达式

MySQL通过相关性从句子的任何位置获取完整的单词匹配(不是字符)

java - Java 中的基本 Hangman 游戏(主要涉及字符串操作)

c++ - 按键绑定(bind)? (c)(将字符串转换为函数)