Java 解析问题
我有一个字符串,我需要自定义解析器,但我被困在大括号里,我怎么能解析这个Java 解析问题,java,android,Java,Android,我有一个字符串,我需要自定义解析器,但我被困在大括号里,我怎么能解析这个 [TPIN{PrimaryPIN=6152987; IsValidUser=true; }, TPIN{PrimaryPIN=794032; IsValidUser=true; }] 这里有两个字段: PrimaryPIN 伊斯瓦利杜瑟 我想用split将其放入数组中,但这不是一个好主意,所以你能告诉我如何制作两个数组,可以给我PrimaryPIN和IsValidUser的值请帮助我 这里有一个简单的PrimaryPin
[TPIN{PrimaryPIN=6152987; IsValidUser=true; }, TPIN{PrimaryPIN=794032; IsValidUser=true; }]
这里有两个字段:
PrimaryPIN
伊斯瓦利杜瑟
我想用split将其放入数组中,但这不是一个好主意,所以你能告诉我如何制作两个数组,可以给我PrimaryPIN和IsValidUser的值请帮助我 这里有一个简单的PrimaryPin和IsValidUser解析器:
另一个解决方案基于@PawełNadolski的解决方案,但只进行了一次迭代:
String s = "[TPIN{PrimaryPIN=6152987; IsValidUser=true; }, TPIN{PrimaryPIN=794032; IsValidUser=true; }]";
Pattern pinPattern = Pattern.compile("PrimaryPIN=([0-9]*); IsValidUser=(true|false);");
Map<String, Boolean> pins = new HashMap<String, Boolean>();
Matcher m = pinPattern.matcher(s);
while (m.find()) {
pins.put(m.group(1), new Boolean(m.group(2)));
}
@user1381267将PrimaryPIN=[0-9]*替换为IsValidUser=true | false你能给我一个真正的解决方案吗?这个解决方案适用于整个应用程序,因为这是针对单个字符串和simepl数据的,未来它将增加更多,数据将更复杂,所以你能给出一些看起来像解析器的解决方案吗
String s = "[TPIN{PrimaryPIN=6152987; IsValidUser=true; }, TPIN{PrimaryPIN=794032; IsValidUser=true; }]";
Pattern pinPattern = Pattern.compile("PrimaryPIN=([0-9]*); IsValidUser=(true|false);");
Map<String, Boolean> pins = new HashMap<String, Boolean>();
Matcher m = pinPattern.matcher(s);
while (m.find()) {
pins.put(m.group(1), new Boolean(m.group(2)));
}