1
我有一个master_string具有从pHp数据库检索到的值。它们是:散列表和字符串值错误
{"P":[["5"],["22"]],"AS":[["29"],["34"]],"DT":[["995"],["12"]],"AR":[["23"],["121"]],"SE":[["5"],["22"]]}
和去除特殊字符后,该字符串现在是:
P:5,22,AS:29,34,DT:995,12,AR:23,121,SE:5,22
现在,当我试图将其转换成一个Hashtable的一些值,它应该给我2倍的值,但它只给我一个。我的代码为这部分是
String input = master_string;
Hashtable<String, int[]> result2 = new Hashtable<String, int[]>();
Pattern pattern = Pattern.compile("([A-Z]+):(\\d+(?:\\d+)*)");
Matcher matcher = pattern.matcher(input);
while (matcher.find())
{
String key = matcher.group(1);
String[] fields = matcher.group(2).split(",");
int[] values = new int[fields.length];
for (int pqr=0; pqr<values.length; pqr++)
{
values[pqr] = Integer.parseInt(fields[pqr]);
}
result2.put(key, values);
}
每个字母表是其值之后直到找到另一个键的值的关键。我发现result2散列表只保存第一个值,忽略第二个,任何想法为什么会发生这种情况?
PS:在RESULT2答案应该是这样的:
P = {5, 22}
AS = {29, 34}
DT = {995, 12}
SE = {5, 22}
你的先生是一个救星,来自邻国的荣誉给你我的兄弟! –
@SaimMahmood谢谢你的赞赏,我很高兴我可以帮忙,快乐的编码 –
和你在回答中提到的网站非常好,再次感谢! –