从密钥列表java中获取整数值

时间:2014-11-10 12:56:28

标签: java parsing key arrays

我有一个类似以下的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);操作?

2 个答案:

答案 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;
}