NE{$neID}CRD{$slotNumber}TP{$xxx} 写一个java工具类 当检测到$符号 括号里面就传入对应参数名的变量
时间: 2023-11-01 11:09:17 浏览: 152
可以尝试使用正则表达式来实现这个功能。以下是一个示例工具类的实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class NETool {
private static final Pattern pattern = Pattern.compile("\\$([^\\{\\}]+)\\{([^\\{\\}]+)\\}");
public static Map<String, String> parseNE(String input) {
Map<String, String> result = new HashMap<>();
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String key = matcher.group(1);
String value = matcher.group(2);
result.put(key, value);
}
return result;
}
}
```
使用示例:
```java
String input = "NE{$neID}CRD{$slotNumber}TP{$xxx}";
Map<String, String> result = NETool.parseNE(input);
System.out.println(result.get("neID")); // 输出:null
System.out.println(result.get("slotNumber")); // 输出:null
System.out.println(result.get("xxx")); // 输出:null
```
需要注意的是,由于括号内的变量名是动态的,因此我们只能将其存储到一个 `Map` 中,而无法直接传入对应的变量名。在上面的示例中,我们使用了 `Map<String, String>` 来存储变量名和变量值的对应关系。使用时,可以通过 `result.get(key)` 来获取对应变量名的变量值。如果输入的字符串中没有指定的变量名,则 `get` 方法会返回 `null`。
阅读全文