首页 > 解决方案 > 我想检索键值作为字符串和值作为双精度值(注意:值可以在删除 % 符号后以双精度存储)

问题描述

这是我的基类代码,我想将键值作为字符串检索,将值作为 Double 检索,以在验证器中将其与特定范围进行比较。(注意:由于删除了 % 符号,我们可以将值的字符串值存储在 Double 中)

    ArrayList al = new ArrayList();
    ArrayList al1 = new ArrayList();
    HashMap<ArrayList, ArrayList> hmap = new HashMap<ArrayList, ArrayList>();
    driver.findElement(By.xpath("//a[contains(@href,'#bottomuppanel')]")).click();
    Thread.sleep(15000);

    List<WebElement> SecuritySliceColHeader = driver.findElements(By.xpath(
            "//td[contains(@class,'dxpgColumnFieldValue_Metropolis dxpgColumnTotalFieldValue_Metropolis dxpgColumnGrandTotalFieldValue_Metropolis lastLevel')]"));
    for (WebElement header : SecuritySliceColHeader) {
        String ColHead = header.getText();
        al.add(ColHead);
    }
    Thread.sleep(2000);

    List<WebElement> grandHeader = driver.findElements(
            By.xpath("//td[contains(@class,'lastVertCell dxpgCell_Metropolis dxpgGrandTotalCell_Metropolis')]"));
    for (WebElement grand : grandHeader) {
        String grandTotalHeader = grand.getText();
        al1.add(grandTotalHeader);
    }

    HashMap<String, String> hmap1 = new HashMap<String, String>();
    for (int i = 0; i < al.size(); i++) {
        hmap1.put(al.get(i).toString(), al1.get(i).toString().replaceAll("%", ""));
    }
    for (Map.Entry m : hmap1.entrySet()) {
        System.out.println(m.getKey() + "  : " + m.getValue());
    }

标签: javaselenium

解决方案


使用以下代码:

        List<String> keys = Arrays.asList("One","two");
        List<String> values = Arrays.asList("1%","2%");

// 在这里获取您的列表(我只是假设您的两个列表具有相同的大小)

        Map<String, Double> hMap = new HashMap<>();

    for (int i = 0; i < keys.size(); i++) {
        String key = keys.get(i);
        String value = values.get(i).isEmpty() ? "0" : values.get(i).replaceAll("%", "");
        Double valueInDouble = Double.valueOf(value);
        hMap.put(key, valueInDouble);

}

然后打印它你会得到你想要的输出:

for (Map.Entry m : hMap.entrySet()) {
            System.out.println(m.getKey() + "  : " + m.getValue());
        }

您必须将键映射为字符串,将值映射为 Double。
希望对您有所帮助。


推荐阅读