gpt4 book ai didi

java - 在java中表示字符串中的自定义属性

转载 作者:行者123 更新时间:2023-12-02 04:12:46 25 4
gpt4 key购买 nike

我想用纯字符串表示一些自定义属性,就像我们如何在 XML/JSON 中使用属性一样。

示例:

some_string1${object1.property1}some_string2${object2.property1}

这就是我正在尝试的:

package com.foo.bar;

public class CustomStringFormator {
public String formatString(String input) {
String output = null;
// Here I need solution to extract ${} patterns using regex and replace
// the substitutions for that by calling getValueForProperty() method
// example getValueForProperty("object1.property1") return value1
return output;
}

private String getValueForProperty(String property) {
String value = null;
// some known logic
return value;
}

public static void main(String[] args) {
String output = new CustomStringFormator()
.formatString("some_string1_${object1.property1}_some_string2${object2.property1}");
// output will be like
// some_string1_value1_some_string2_value2
}
}

我使用纯字符串而不是其他文本表示形式,因为我想最大限度地优化此操作。

在 formatString 方法中,我想要一个解决方案,将 ${property} 标记替换为 getValueForProperty(property) 返回的值。

请给我您的建议。

最佳答案

public String formatString(String input) {
Pattern pattern = Pattern.compile("\\$\\{\\s*(\\w+\\.\\w+)\\s*\\}");
Matcher matcher = pattern.matcher(input);
while(matcher.find()){
String key = matcher.group(1);
String value = getValueForProperty(key);// object1.property1,object2.property1
String output = input.replace(matcher.group(),value);
input = output;
}
return output;
}

关于java - 在java中表示字符串中的自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33625108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com