Hi,
ich habe ein Problem mit der Implementierung einer Sortierreihenfolge und zwar möchte ich das das Zeichen * die niedrigste Priorität bekommt wie im folgenden Beispiel:
DU BIST EIN ROBOTER
DU BIST JA LUSTIG
DU BIST JA *
DU BIST *
DU LUEGST
DU *
HALLO
*
Das * muss immer zuletzt und "Du bist ja *" muss vor "Du bist *" kommen.
Ich habe bereits eine Klasse die das Interface Comparator implementiert, leider ist die ArrayList nach der Sortierung immer noch nicht richtig sortiert.
Was mache ich falsch?
lg chriss
ich habe ein Problem mit der Implementierung einer Sortierreihenfolge und zwar möchte ich das das Zeichen * die niedrigste Priorität bekommt wie im folgenden Beispiel:
DU BIST EIN ROBOTER
DU BIST JA LUSTIG
DU BIST JA *
DU BIST *
DU LUEGST
DU *
HALLO
*
Das * muss immer zuletzt und "Du bist ja *" muss vor "Du bist *" kommen.
Ich habe bereits eine Klasse die das Interface Comparator implementiert, leider ist die ArrayList nach der Sortierung immer noch nicht richtig sortiert.
Code:
class StarComparator implements Comparator<Object>
{
public int compare(Object o1, Object o2)
{
int iRet = 0;
String s1 = o1.toString();
String s2 = o2.toString();
if (s1.intern() == s2)
{
iRet = 0;
}
else
{
char a, b;
for (int i = 0, n = Math.min(s1.length(), s2.length()); i < n; i++)
{
a = s1.charAt(i);
b = s2.charAt(i);
if (a != b)
{
if (b == '*')
{
iRet = 1;
break;
}
else if (a < b)
{
iRet = -1;
break;
}
else
{
iRet = 1;
break;
}
}
}
}
return iRet;
}
}
Was mache ich falsch?
lg chriss