我有一个像这样的字符串:“#{var1} 就像#{var2}
。
我想用变量 var1
和 var1< 的值替换
。有没有一种聪明的方法可以做到这一点,而无需迭代整个字符串并找到模式 "#{var1}
和 "#{var1}
/#{}
然后替换它?
我找不到可以做到这一点的库。
最佳答案
您可以使用 java 内置正则表达式机制来查找检查字符串中的模式并使用适当的函数进行替换。让我告诉你...
public static void main(String[] args)
{
StringBuilder output = new StringBuilder();
String inputString = "sequence to analize #{var1} is like #{var2}";
Pattern pattern = Pattern.compile("#\\{(.*?)\\}");
Matcher matcher = pattern.matcher(inputString);
int lastStart = 0;
while (matcher.find()) {
String subString = inputString.substring(lastStart,matcher.start());
String varName = matcher.group(1);
String replacement = getVarValue (varName);
output.append(subString).append(replacement);
lastStart = matcher.end();
}
System.out.println(output.toString());
}
private static String getVarValue(String varName) {
return "value"; // do what you got to replace the variable name for its value
}
也许这个例子需要多做一些工作..但它可以给你一个想法。
希望有帮助。
问候。
关于java - 在Java中用字符串中的变量值替换变量的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656339/