用方法的结果替换字符串中的方法名称

Replace method names in String with outcome of method

在属性文件中,我正在加载一个字符串,其中包含(带有分隔符和正则表达式)我想从 Java.

动态调用的方法名称

例如:"%getProductName%-%GetProductCode%[-]*[0-9]*\.(.+)"

当从属性文件中读取字符串时,我想在调用方法时用它们的 return 值替换方法名称(在 %% 之间)。

但我不太确定如何在 Java 中完成以下操作(最佳实践): - 解析字符串并检索所有 %methodNames% 变量。

在检索到 String 中定义的不同方法后,我将使用 Reflection 检索结果并替换原始 String 中的这个值。

我只是在寻找一种关于解析字符串和检索不同 %methodNames%.

的快速方法

感谢任何建议!

您可以像这样尝试正则表达式:

public static void main(String[] args) {
    String s = "%getProductName%-%GetProductCode%[-]*[0-9]*\.(.+)";
    Pattern p = Pattern.compile("%(.*?)%"); // capturing group to extract data between ()s
    Matcher m = p.matcher(s);
    while (m.find()) {
        System.out.println(m.group(1));
    }

}

O/P :

getProductName
GetProductCode