Avatar billede fastpoint Nybegynder
15. december 2004 - 21:23 Der er 5 kommentarer og
1 løsning

CompareTo forklaring

Hejsa!

Jeg har ingen problemer med at anvende metoden, men forstå bare ikke lige hvordan den skal forstås og læses alligevel hehe... synes jeg var på tide!

Når man sortere Strings.. fx to navne så skrive man

String navn1 = "knud";
String navn2 = "benny";
if(navn1.CompareTo(navn2) > 0)
{

}

lidt dårligt eksempel hvis man skal sortere hehe.. men lad os forestille os det er en ArrayList.... og på plads et ligger knud og plads to ligger benney.. hvordan skal denne sætning så læses?

if(navn1.CompareTo(navn2) > 0)

for kan egentlig ikke forstå brugen af > 0.
Avatar billede arne_v Ekspert
15. december 2004 - 21:31 #1
Er docs ikke klar nok:

Returns:
    a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object.
Avatar billede driis Nybegynder
15. december 2004 - 21:35 #2
CompareTo på en string udfører en lexicografisk sammenligning, og returnerer en værdi under 0 hvis navn1 er lexicografisk mindre end navn2, 0 hvis navn1 == navn2 og større end 0 hvis navn1 er større end navn2.

Forklaring af metoden, og sammenligningsmetoden:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#compareTo(java.lang.String)
Avatar billede fastpoint Nybegynder
15. december 2004 - 21:39 #3
Har det noget med UniCode at gøre? hvad der kommer før hvad?

For ellers kan jeg ikke lige se hvordan Java kan vide at benny skal komme før knud.

kan man sige at bogstaverne er "usynligt talgivet?" altså at a er det samme som 1 og b er det samme som 2... eller ved det ikke vil blive helt sådan for et der også noget med store og små bogstaver.
Avatar billede arne_v Ekspert
15. december 2004 - 21:47 #4
Ja. Alle bogstaver har en tal værdi.

'b' er 98
'k' er 107
Avatar billede arne_v Ekspert
15. december 2004 - 21:49 #5
Og ja det har noget med Unicode at gøre.

Dog har de bogstaver der ligget fast længe inden Unicode blev opfundet.
Avatar billede driis Nybegynder
15. december 2004 - 21:55 #6
CompareTo returnerer forskellen på talværdien af karakteren på det første index i de 2 strenge, som er forskellige. Hvis streng1 og streng2 er af forskellig længde, og de er ens henover det mindste antal karakterer, returnerer CompareTo længden af streng1 minus længden af streng2

this.length()-anotherString.length()

(Løseligt oversat fra det relevante sted i dokumentationen)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester