NE{$neID}CRD{$slotNumber}写一个java工具类 当检测到$符号 括号里面就传入对应参数名的变量 但是参数个数不确定
时间: 2023-11-22 10:53:43 浏览: 111
可以使用正则表达式来匹配字符串中的参数名和对应的变量值,然后将它们存储到一个 Map 中。下面是一个示例代码:
```java
public class Tool {
public static Map<String, String> parseParams(String input) {
Map<String, String> params = new HashMap<>();
Pattern pattern = Pattern.compile("\\$(\\w+)\\{(.*?)\\}");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String paramName = matcher.group(1);
String paramValue = matcher.group(2);
params.put(paramName, paramValue);
}
return params;
}
}
```
这个工具类中的 `parseParams` 方法接受一个字符串作为输入,然后返回一个 Map,其中包含了所有参数名和对应的变量值。正则表达式 `\\$(\\w+)\\{(.*?)\\}` 可以匹配以 `$` 开头、中间跟着一个或多个字母数字字符的参数名,以及使用大括号括起来的变量值。在 while 循环中,我们使用 `matcher.group(1)` 和 `matcher.group(2)` 来获取参数名和变量值,并将它们存储到 Map 中返回。
使用示例:
```java
String input = "NE{$neID}CRD{$slotNumber}";
Map<String, String> params = Tool.parseParams(input);
System.out.println(params.get("neID")); // 输出 "{$neID}"
System.out.println(params.get("slotNumber")); // 输出 "{$slotNumber}"
```
阅读全文