Avatar billede thecokeguy Nybegynder
04. november 2005 - 13:07 Der er 4 kommentarer og
1 løsning

Equals eller to gange lig med?

Hej...

Jeg har i programmering benyttet == til at sammenligne strenge med eks. if ("cool" == "cool"), men nu siger min programmerings lærer, at jeg SKAL benytte if (str.equals("cool")), da der åbenbart er en forskel... Da jeg ikke har kunnet få den forklaret eller selv finde den... Så ville jeg høre om I kan fortælle mig hvad forskellen er?.. Det skal lige siges, at jeg er bekendt med hvordan strenge er bygget op. (Så kender I min basis-viden)

På forhånd tak
Avatar billede arne_v Ekspert
04. november 2005 - 13:10 #1
== tester om de 2 objekter er samme objekt (om de 2 referencer peger på
samme sted i memory)

equals tester for om de 2 objekter er indholdsmæssigt ens (java.lang.Object
har en equals som svarer til ==, men subklasser kan override den og String equals
tester for om de har de samme tegn)
Avatar billede arne_v Ekspert
04. november 2005 - 13:12 #2
prøv f.eks. følgende program:

package november;

public class Equals {
    public static void main(String[] args) {
        String s1 = "ab";
        String s2 = new String("ab");
        String s3 = "a" + "b";
        String s4 = new String("a") + new String("b");
        String s5 = a() + b();
        System.out.println(s1=="ab");
        System.out.println(s2=="ab");
        System.out.println(s3=="ab");
        System.out.println(s4=="ab");
        System.out.println(s5=="ab");
    }
    private static String a() {
        return "a";
    }
    private static String b() {
        return "b";
    }
}
Avatar billede thecokeguy Nybegynder
04. november 2005 - 13:25 #3
Tusinde tak... Det giver meget mere mening

...Poster du ikke lige et svar, så du kan inkassere pointene.
Avatar billede arne_v Ekspert
04. november 2005 - 13:27 #4
svar
Avatar billede arne_v Ekspert
04. november 2005 - 13:28 #5
i 99.9% af tilfældene vil man foretrække at bruge equals
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