Hi Leute, ich hatte schonmal ein Thema dazu, aber jetzt ist noch was dazu gekommen.
Ich erklärs nochmal kurz, für diejenigen, die es noch nicht kennen.
Es gibt eine ArrayList mit Programmnamen die ausschließlich mit P oder U anfangen, gefolgt von einer vierstelligen Zahl. Also so z.B. P5003
P5003 ist auch das Hauptprogramm welches als einziges Unterprogramme besitzt, also U5032 z.B.
Jetzt wollte ich so sortieren, dass alle P-Programme und P5003 gefolgt von den Unterprogrammen korrekt nach Größe der Zahl geordnet sind. Das war auch fertig.
Jetzt aber würde ich gerne diesen Comparator erweitern mit einer kleinen Funktion, da falls es nicht klappen sollte, so wie ich mir das gerade vorstelle, viel Arbeit bevorsteht^^
Ich habe da nämlich ein ExcelDokument was ich schreibe, in der 1. Spalte stehen dann die sortierten Programme. Da gibt es aber noch eine 2. und 3. Spalte, zu den jeweiligen Programmen. Da stehen dann Zahlen drin. Bei Spalte 2 kommt es z.B. oft vor, dass 44 drin steht (Hat einen bestimmten Grund, tut aber hier nix zur Sache).
Es muss so sein, dass ich am Schluss in einer ArrayList erst die Programmnamen und dann die beiden Spalten mit den ZahlenWerten drin habe. Die kann ich dann zum schreiben für das neue Excel-Dokument benutzen.
Ich weiß leider gerade nicht wie ich das genau machen soll. Hat jemand eine Idee , oder auch eine Idee wie ich es anders machen könnte ?
Hier ist mal der Code vom Comparator
Vielen lieben Dank, denn ich weiß auf euch ist Verlass!!!
lg Basti
Ich erklärs nochmal kurz, für diejenigen, die es noch nicht kennen.
Es gibt eine ArrayList mit Programmnamen die ausschließlich mit P oder U anfangen, gefolgt von einer vierstelligen Zahl. Also so z.B. P5003
P5003 ist auch das Hauptprogramm welches als einziges Unterprogramme besitzt, also U5032 z.B.
Jetzt wollte ich so sortieren, dass alle P-Programme und P5003 gefolgt von den Unterprogrammen korrekt nach Größe der Zahl geordnet sind. Das war auch fertig.
Jetzt aber würde ich gerne diesen Comparator erweitern mit einer kleinen Funktion, da falls es nicht klappen sollte, so wie ich mir das gerade vorstelle, viel Arbeit bevorsteht^^
Ich habe da nämlich ein ExcelDokument was ich schreibe, in der 1. Spalte stehen dann die sortierten Programme. Da gibt es aber noch eine 2. und 3. Spalte, zu den jeweiligen Programmen. Da stehen dann Zahlen drin. Bei Spalte 2 kommt es z.B. oft vor, dass 44 drin steht (Hat einen bestimmten Grund, tut aber hier nix zur Sache).
Es muss so sein, dass ich am Schluss in einer ArrayList erst die Programmnamen und dann die beiden Spalten mit den ZahlenWerten drin habe. Die kann ich dann zum schreiben für das neue Excel-Dokument benutzen.
Ich weiß leider gerade nicht wie ich das genau machen soll. Hat jemand eine Idee , oder auch eine Idee wie ich es anders machen könnte ?
Hier ist mal der Code vom Comparator
Java:
import java.util.Comparator;
public class ProgramNameComparator implements Comparator<String> {
public int compare(String s1, String s2) {
if (s1.equals(s2)) {
return 0;
}
if (s1.charAt(0) == 'U') {
if (s2.charAt(0) == 'U') {
return (s1.substring(1).compareTo(s2.substring(1)));
} else {
int number = Integer.valueOf(s2.substring(1));
if (number <= 5003) {
return 1;
} else {
return -1;
}
}
} else {
if (s2.charAt(0) == 'U') {
int number = Integer.valueOf(s1.substring(1));
if (number <= 5003) {
return -1;
} else {
return 1;
}
} else {
return (s1.compareTo(s2));
}
}
}
}
Vielen lieben Dank, denn ich weiß auf euch ist Verlass!!!
lg Basti