java - 在Java中用字符串中的变量值替换变量的名称

标签 java string character-replacement

我有一个像这样的字符串:“#{var1} 就像#{var2}
我想用变量 var1var1< 的值替换 "#{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/

相关文章:

python - 正则表达式在 Python 和 Ruby 中的工作方式不同

替换字符的 Pythonic 方式

python - 如何在 Python 中有效地进行字节对编码二元组计数和替换?

java - 部署 Spring Boot 应用程序时的 Swagger UI 错误验证

java - AWS (Elastic Beanstalk) + Java (Spring) = 原因 : Error reading from remote server

java - javase项目中的Eclipselink问题

c - 字符串未正确转换为小写

java - Android中SQLite的可变错误

c# - .NET 和 T-SQL 之间的字符串比较差异?

c++ - Visual Studio 2008 : String Literals "??-", "??'“, "??="损坏