Ich habe 3 Elemente und sie haben Vornamen und Nachnamen es ist ein Knopf. Ich muss überprüfen, ob sie nach dem Vornamen und dann nach dem Nachnamen alphabetisch sortiert sind. Das Seitenobjekt für Elemente ist ListV_Sorted. Ich denke ich habe nur nach Vornamen sortiert. 0 Element = Jack Daniels, 1 Element = John Fera, 2 Element = Mike Durov. ListV ist ein Seitenobjekt für die Elemente. Ich bekomme einen Fehler Es wird erwartet, dass es wahr ist, aber falsch gefunden.Sortieren nach Vorname alphabetisch und nach Nachname
@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;
}
'split ("");' den String in einzelne Zeichen aufgeteilt. So wird product_names.get (0) "Jack Daniels", product_names.get (1) = "J" und product_names.get (2) = "s" sein. Ich denke nicht, dass Sie das vorhaben. Ich bekomme auch nicht wirklich, was Sie beabsichtigen, mit dieser ganzen Aufteilung + Hinzufügen von 3 Werten in die Liste für jeden Namen. Ich denke, Sie müssen Ihren gesamten Ansatz überdenken und wahrscheinlich die Gelegenheit nutzen, um zu lernen, wie man einen Debugger verwendet. –
Element im Grunde eine Zeichenfolge = "Jack Daniels" Ich habe versucht, zwei Wörter zu teilen. Wie würdest du es machen. –
Die Aufteilung nach Leerzeichen anstelle einer leeren Zeichenfolge wäre ein Anfang. Aber nochmal: Ich verstehe immer noch nicht, warum du dich überhaupt teilen willst. Warum vergleichen Sie nicht einfach die Saiten so wie sie sind? –