java String 获取 ${XXX}, 再用变量替换重新生成字符串
时间: 2024-02-03 20:13:58 浏览: 140
可以使用 String 的 replaceAll 方法来实现,具体步骤如下:
1. 使用正则表达式匹配 ${XXX},其中 XXX 表示变量名,可以使用 \w+ 表示一个或多个字母、数字或下划线。
2. 使用 Matcher 对象获取变量名,例如使用 group 方法获取 XXX。
3. 根据变量名获取变量的值。
4. 使用 String 的 replaceAll 方法将 ${XXX} 替换为变量的值。
示例代码如下:
```java
String input = "Hello, ${name}! Today is ${day}.";
Map<String, String> variables = new HashMap<>();
variables.put("name", "Alice");
variables.put("day", "Monday");
Pattern pattern = Pattern.compile("\\$\\{\\w+\\}");
Matcher matcher = pattern.matcher(input);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
String variableName = matcher.group().substring(2, matcher.group().length() - 1);
String variableValue = variables.get(variableName);
if (variableValue != null) {
matcher.appendReplacement(sb, variableValue);
}
}
matcher.appendTail(sb);
String output = sb.toString();
System.out.println(output);
```
输出结果为:
```
Hello, Alice! Today is Monday.
```
阅读全文