java查找字符串中${}格式字符串并生成map
时间: 2023-05-14 10:04:47 浏览: 188
java中字符串参数化符号${}的解析
可以使用正则表达式来查找字符串中的${}格式字符串,然后将其解析为键值对存储在Map中。以下是示例代码:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringParser {
public static Map<String, String> parse(String str) {
Map<String, String> map = new HashMap<>();
Pattern pattern = Pattern.compile("\\$\\{([^}]+)\\}");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
String[] pair = matcher.group(1).split(":");
if (pair.length == 2) {
map.put(pair[0], pair[1]);
}
}
return map;
}
}
```
该代码将字符串中的${key:value}格式字符串解析为键值对存储在Map中,例如:
```java
String str = "Hello, ${name:World}! Today is ${date:2022-01-01}.";
Map<String, String> map = StringParser.parse(str);
System.out.println(map.get("name")); // Output: World
System.out.println(map.get("date")); // Output: 2022-01-01
```
请注意,该代码仅支持${key:value}格式的字符串,如果需要支持其他格式的字符串,需要相应地修改正则表达式和解析逻辑。
阅读全文