gpt4 book ai didi

java - 如何比较字符串列表中的元素与字符串数组列表?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:46:07 25 4
gpt4 key购买 nike

我已将产品添加到我的购物篮并将其 URL 列在列表中,并希望根据给定的产品字符串 [] 验证这些产品这些项目在 z String[] 中向后存储,所以这里的最后一项是列表中的第一个项目。项目的数量是 3,下面的代码适用于 2 个项目,并在第三个项目的断言方法中抛出调用程序异常

public void verifyBag(String[] goods) {
actions.clickOn(By.xpath(bagLocator));
Arrays.sort(goods);
List<WebElement> listItems = actions.driver.findElements(By.xpath(bagItems));
List <String> actualItems = new ArrayList<String>();
for(int i=0;i<listItems.size();i++)
{
actualItems.add(listItems.get(i).getAttribute("href"));
}
int j = goods.length-1;
for(int i=0;i<goods.length;i++)
{

String actualItem = actualItems.get(i);
String product = goods[j];
System.out.println(product);
//assertTrue(actualItems.get(i).contains(goods[j]));
assertTrue(actualItem.equals(product));
j--;
}
assertEquals(listItems.size(), goods.length,"Assert Number of Items in the Bag");
}

最佳答案

如果您不关心顺序,而是关心所提供的goods 列表与actualItems 之间的匹配,您可以这样做:

  1. 将输入数组String[] goods 转换成一些集合,例如List。我们称它为 goodsList
  2. goodsList 中,删除也在 actualItems 中的所有项目。

    • 如果结果集为空,则表示 goodsList 中的所有项目都是也在 actualItems 中。
    • 如果结果集不为空,它将包含 actualItemsgoodsList 相比缺少的项目列表
  3. 您也可以执行相反的操作:从 actualItems 中删除所有也包含在 goodsList 中的项目。这会为您提供所提供列表中不存在的项目列表。

代码:

public void verifyBag(String[] goods) {
actions.clickOn(By.xpath(bagLocator));
List<WebElement> listItems = actions.driver.findElements(By.xpath(bagItems));
List <String> actualItems = new ArrayList<String>();
for(int i=0;i<listItems.size();i++)
{
actualItems.add(listItems.get(i).getAttribute("href"));
}
List<String> goodsList = new ArrayList(Arrays.asList(goods));
goodsList.removeAll(actualItems);
if(goodsList.size() == 0) {
// All goods from provided goods list are also in actualItems
}
else {
// Some items didn't match
}

关于java - 如何比较字符串列表中的元素与字符串数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com