私は3つの要素を持ち、最初の名前と最後の名前はボタンになっています。私は彼らが名前でアルファベット順にlastnameによって命名されたかどうか確認する必要があります。要素のためのPageオブジェクトはListV_Sortedです。私はファーストネームの要素でソートしたと思う。 0要素= Jack Daniels、1要素= John Fera、2要素= Mike Durov。 ListVは要素のページオブジェクトです。私はエラーが出るそれは期待通りだが、間違っていると言います。代わりにあなたがデータ構造を使用して入力を並べ替えることがjava.util.TreeSet
を使用する必要がありますjava.util.LinkedList
のアルファベット順と姓でアルファベット順に並べ替える方法
@SuppressWarnings("unchecked")
public void sortingOrder() {
Log.log(driver).info("About to Alphebetically Sort");
List<MobileElement> products_MobileElements = new LinkedList<MobileElement>();
products_MobileElements = (List<MobileElement>) TicketPassesNames;
LinkedList<String> product_names = new LinkedList<String>();
for(int i=0;i<products_MobileElements.size();i++){
String s = products_MobileElements.get(i).getAttribute("checked");
String[] tokens = s.split("");
String firstName = "";
String lastName = "";
if(tokens.length > 0) {
firstName = tokens[0];
lastName = tokens[tokens.length -1];
product_names.add(s);
product_names.add(firstName);
product_names.add(lastName);
}
}
boolean result = checkAlphabeticalOrder(product_names);
Assert.assertEquals(checkAlphabeticalOrder(product_names), true);
Log.log(driver).info("Tickest Passes names are in alphabetical order.");
System.out.println(result);
}
//Method takes a String to Sort AlphabeticalLy
public static boolean checkAlphabeticalOrder(LinkedList<String> product_names){
String previous = ""; // empty string
for (final String current: product_names) {
if (current.compareTo(previous) < 0)
return false;
previous = current;
}
return true;
}
'スプリット( "");'単一の文字に文字列を分割します。したがって、product_names.get(0)は "Jack Daniels"、product_names.get(1)= "J"、product_names.get(2)= "s"になります。私はそれがあなたがするつもりではないと思います。とにかく、あなたはその全体を分割して+あなたの意図するものを実際には得られません+とにかく各名前のリストに3つの値を追加します。私はあなたの全体のアプローチを再考する必要があり、おそらく機会を使用してデバッガの使い方を学ぶ必要があると思います。 –
要素は基本的に文字列= "Jack Daniels"私は2つの単語を分割しようとしていました。どうやってやるの? –
空の文字列の代わりにスペースで分割することは、始まりになります。しかし、もう一度:私はまだあなたが全く分割したい理由を理解していません。文字列をそのまま比較するのはなぜですか? –