【问题标题】:Replace method names in String with outcome of method [duplicate]用方法的结果替换字符串中的方法名称[重复]
【发布时间】:2015-01-12 14:29:16
【问题描述】:

在一个属性文件中,我正在加载一个字符串,其中包含我想从 Java 动态调用的方法名称(带有分隔符和正则表达式)。

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

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

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

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

我只是在寻找一种关于解析字符串和检索不同的%methodNames% 的快速方法。

感谢您的建议!

【问题讨论】:

    标签: java replace


    【解决方案1】:

    你可以试试这样的正则表达式:

    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
    

    【讨论】:

    • 我在回答 我只是在寻找一种关于解析字符串和检索不同 %methodNames%. 部分的快速方法。 @downvoters,请自行解释。
    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2012-09-25
    相关资源
    最近更新 更多