我有一个类似以下的json文件:
[
{
"100": "2"
},
{
"50": "5"
},
{
"30": "3"
},
{
"10": "8"
},
{
"5": "4"
}
]
解析后,我能够获得密钥:
public static void main(String[] args, int value)
{
JSONParser parser = new JSONParser();
try {
JSONArray jsonArray =
(JSONArray) parser.parse(
new FileReader("/Users/.../Documents/workspace/testCase/bin/test.json"));
int remaining = value;
for (int n = 0 ; n < jsonArray.size(); n++)
{
JSONObject note = (JSONObject)jsonArray.get(n);
Set keys = note.keySet();
int result = Math.floor(remaining/keys);
}
}
}
如何从键集中提取键作为整数,以便我可以使用int numOfChange = Math.floor(remaining/keys);
操作?
答案 0 :(得分:0)
我不确定,这是不是你的意思,而是我理解的方式,
当你从文件中获取一个字符串时,为了将它们视为整数,你必须解析它们,例如
int a = Integer.parseInt(string);
如果你想保持相同的衬里,你可以读取一行的两个字符串,将它们保存在HashMap中,就像在解析的第一个字符串中保存为键,第二个字符串作为值
答案 1 :(得分:0)
Integer.parseInt
方法需要String作为参数,因为您需要迭代元素。例如:
for(String s : keys){
System.out.println(Integer.parseInt(s));
}
注意以下实施基于评论中的问题:
问题:给定一个参数作为参数返回一个通过将字符串转换为整数的集合
public Set<Intege> StringSetToIntegerSet(Set<String> input) throws Exception{
Set<Integer> output=new HashSet<Integer>();
for(String s : input){
output.add(Integer.parseInt(s));
}
return output;
}