compareTo auf String liefert seltsame Werte



  • Dieses Programm liefert mir als Ausgabe -15

    public class Test {
        static public void main(String[] args) {
    	System.out.println( "hello".compareTo( "welt" ) );
        }
    }
    

    Allerdings sollte compareTo, doch -1, 0, 1 liefern 😮

    Ist das so wirklich richtig? Kann ich mir fast nicht vorstellen.

    java -version:
    java version "1.6.0_03"
    Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
    Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)



  • 😮 schrieb:

    Returns:
    the value 0 if the argument string is equal to this string; a value less than 0 if this string is lexicographically less than the string argument; and a value greater than 0 if this string is lexicographically greater than the string argument.



  • Hab ich gemacht und festgestellt, dass die bei Comparator in der Doku -1,0,1 als spezialfall nutzen und allgemein < 0, 0 und > 0 gefordert wird. Danke.



  • Javaianer schrieb:

    Hab ich gemacht und festgestellt, dass die bei Comparator in der Doku -1,0,1 als spezialfall nutzen

    Eben und darauf sollte sich auch nicht verlassen werden.

    Kleiner 0, gleich 0, größer 0 ist alleine richtig seid
    diese Methode (Funktion) in C eingeführt wurde.

    Zum Beispiel weil zwei chars im compareTo einfach
    voneinander abgezogen werden könnten.


Anmelden zum Antworten