2017-02-09 46 views
-2

我正在做一些硒自動化測試用例,我正在使用下面的代碼獲取web元素列表。在將字符串轉換爲整數後對java中的值進行排序列表

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

,然後我循環,網頁元素,並使用

for (WebElement webElement : list) { 

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

} 

所以我得到的字符串格式的值獲得的值。和樣本值得到下述

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

我想在排序順序或不檢查這些值?爲此,我想我應該轉換爲整數,然後檢查使用某種排序方法,我猜。因爲我試圖將這些值轉換爲一個整數列表,然後使用像番石榴一樣的排序算法來檢查排序。由於我的負面價值,我很難做到這一點。

有什麼辦法可以檢查上述問題的排序順序,並檢查值的順序。 ?

在此先感謝。

+0

番石榴是不是一個排序算法!無論如何,你在* Java 8 *? – CKing

+0

使用收集排序。 – Sedrick

+0

@SedrickJefferson Nope。不是OP期望的答案。 – CKing

回答

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; 

     } 

    } 
+0

完美..這工作得很好..非常感謝你的幫助Sumit。 – asl

0
  1. 創建數據的2份
  2. 的先轉換成整數,並對其進行排序
  3. 轉換,第二個爲整數,讓它
  4. 檢查,如果兩個列表是相等的,如果他們是那麼你的list is sorted
+0

由於負值,我無法轉換爲整數。得到例外。例如我越來越-100,000,我試圖將這個值整數轉換。parseInt函數(-100,000);但得到例外,因爲' - ' – asl

+0

這是因爲他們不是整數 這裏是一個解決方案:String s =「 - 100,000」; s = s.replaceAll(「,」,「。」); //用來替換。 s = Double.parseDouble(s); 這應該解決它 –

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);   

     } 

    } 
} 
相關問題