将字符串转换为整数后,在java中排序值列表

时间:2017-02-09 16:47:18

标签: java sorting selenium selenium-webdriver

我正在做一些selenium自动化测试案例,我使用下面的代码获取web元素列表。

List<WebElement> list = GlobalVariables.BrowserDriver.findElements(By.xpath(".//*[@id='Tbls_T']/tbody/tr/td[4]"));

然后我正在迭代该web元素并使用

获取值
for (WebElement webElement : list) {

        System.out.println(webElement.getText());

}

所以我以字符串格式获取值。和样本值在下面给出

-100,000 -80,000 0.100 2 87.270 3,000.000

我想在排序顺序中检查这些值吗?因为我认为我应该转换为整数然后检查使用某种排序方法我猜。因为我试图将值转换为整数列表,然后使用像Guava这样的排序算法来检查排序。由于负面价值,我很难做到这一点。

有什么方法可以检查上述问题的排序顺序并检查值的顺序。 ?

提前谢谢。

3 个答案:

答案 0 :(得分:0)

  1. 创建2份数据
  2. 将第一个转换为整数并对其进行排序
  3. 将第二个转换为整数并保留
  4. 检查两个列表是否相等,如果它们是您的列表已排序

答案 1 :(得分:0)

请使用另一个双打和Collections.sort()列表。您可能必须从字符串中删除逗号

public class ConvertToIntSort 
{
    public static void main( String[] args ) 
    {

       String[] strlist = {"-100000","0.100", "2" , "3000.000","87.270", "-80000" };
       java.util.List<String> stringlist =  Arrays.asList(strlist);
       java.util.List<Double> intList = new ArrayList<Double>();
       for(String str : stringlist)
       {          
         //converting and adding to double list  
         intList.add(Double.valueOf(str));

       }
        //Sorting is done here            
        Collections.sort(intList);

       for(Double num : intList)
       {
           System.out.println(num);         

       }

    }
}

答案 2 :(得分:0)

您想要检查传入列表是否已排序。 您将先前的值与当前值进行比较。如果先前的值大于当前值,则列表不会被排序。

示例代码:

    WebElement prev=null;
    boolean isSorted = true;
    for (WebElement currentWebElement : list) {

        if (prev == null) {
            prev = currentWebElement;
            continue;
        } else {

            if (Double.compare(Double.parseDouble(prev.getText().replaceAll(",", "")),
                    Double.parseDouble(currentWebElement .getText().replaceAll(",", ""))) > 0) {
                isSorted = false;
                break;
            }

            prev = currentWebElement;

        }

    }