2017-02-09 4 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()); 

} 

を使用して値を取得しています。サンプル値は-100000

以下 -80000 0.100 87.270 3,000.000

を与えていると私は順番を並べ替えたりないでこれらの値を確認したいですか?それは私が整数に変換する必要があり、私は推測する方法の並べ替えのいくつかの種類を使用してチェックしてください。そのために私は整数のリストに値を変換しようとしているし、並べ替えをチェックするためにGuavaのようなソートアルゴリズムを使います。負の値のために、私はそれをすることが困難に直面している。

上記の問題のソート順を確認して値の順序を確認する方法はありますか? ?

ありがとうございます。

+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

完璧..これはうまくいきました。 – asl

0
  1. 彼らは、あなたのであれば二つのリストが等しい場合は、チェックを整数に二番目に変換し、
  2. それを残して整数に最初に変換し、
  3. それを並べ替えてデータ
  4. の2つのコピーを作成しますリストはソートされています
+0

負の値のため整数に変換できません。例外を取得します。例えば、私は-100,000を得ています。この値をIntegerに変換しようとしました。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);   

     } 

    } 
} 
関連する問題