2016-06-13 7 views
-4

XPathで要素(100浮動小数点値)を見つけて、System.Outを使用してコンソールに出力しました。これらをソートし、上位3つの値を出力する必要があります。この点で私を助けてください。 ありがとうコンソールで上位3つの値を出力する必要があります

+1

SOコミュニティへようこそ。答えがあなたを助けない場合、人々があなたの質問に投票した理由を不思議に思うなら、人々があなたに正しく答えるために必要な情報を追加することをお勧めします。リストから3つを選択するか、HTML内の浮動小数点値を見つけることでソートに問題があるかどうかは不明です。もしあなたがあなたの問題をより明確に指定できるなら、もし助けがあれば。 – luksch

答えて

0

あなたはSeleniumWebdriverを使用しているので、これはおそらくデータ構造:List<WebElement>になります。

リストはjava.util.Collectionフレームワークの一部であるため、ソートを実装することはあまり難しくありません。私が興味のある読者に例外のより良いハンドリングを残す

Collections.sort(list, new Comparator<WebElement>(){ 
@Override 
public int compare(WebElement e1, WebElement e2){ 
    String fl1Str = e1.getAttribute("toSortAfter"); 
    String fl2Str = e2.getAttribute("toSortAfter"); 

    if (fl1Str != null && fl2Str != null){ 
     float f1 = Float.parseFloat(fl1Str); 
     float f2 = Float.parseFloat(fl2Str); 
     if (f1 < f2){ 
     return -1; 
     } 
     else if (f1 > f2) { 
     return 1; 
     } 
    } 
    return 0; 
} 
}); 

、また...:リストは、ソート後の属性にtoSortAfterと呼ばれたいList<WebElement>と浮動小数点値が含まれている場合、このような何かが、仕事ができます私はこれを私の頭の中で、そしてJavaコンパイラを手に取らずに書きました。構文やその他の間違いがあるかもしれません。

注:あなたは、それ以上のお手伝いをすることはできませんcollectiongされHMTLノードの知識がなくても

。浮動小数点値が属性ではなく、属性が異なって呼び出されることもあります。要素のコンテンツの場合は、WebElement.getText()メソッドを使用してこの要素にアクセスできます。

+0

ありがとう@junijo。私はこれを試してみましょう。 –

+0

私はここにHTMLを入れたいけどサイズは大きくなっています:( –

+0

あなたが集めるノードのうちの1つのHTMLをつかんでください。ソートの問題とは関係のない子ノードを投げ捨ててください。 – junijo

0

私はセレンについて知りません。私のコードはjavaに関連しています。浮動小数点数がこのような文字列(5.3 6.366)の場合、次のコードを使用できます。

String floatNumber = "5.3 6.366"; 
String[] numbers = floatNumber.split(" "); 
Arrays.sort(numbers); 
for(int i=0; i<numbers.length;i++){ 
    System.out.println(numbers[i]); 
} 
関連する問題