Avatar billede Slettet bruger
15. april 2002 - 12:28 Der er 15 kommentarer og
1 løsning

Boolean java

Hej.
Kan man ikke bruge boolean opperatorene || && sammen?
f.eks. if(!string.equals("a") || && !string.equals("b"))
Avatar billede medions Nybegynder
15. april 2002 - 12:31 #1
Nej..

//>Rune
Avatar billede medions Nybegynder
15. april 2002 - 12:32 #2
Du kan jo ikke sige:

Hvis etellerandet Eller Og etellerandet
´
//>Rune
Avatar billede jakoba Nybegynder
15. april 2002 - 12:49 #3
Hvad skulle det betyde hvis man skrev sådan?
Avatar billede codemon Nybegynder
15. april 2002 - 12:49 #4
Hvad er det du vil opnå
Avatar billede Slettet bruger
15. april 2002 - 13:02 #5
Hvis der er a eller og b eller og c i en streng kan den godkendes.

if(string.equals("a") || && string.equals("b") || && string.equals("c"))
string = ok;

Dvs hvis et af disse tegn er repræsenteret. Eller hvis flere end ét er, er strengen ok.
Avatar billede codemon Nybegynder
15. april 2002 - 13:08 #6
Det får du ved at bruge 'eller' operatoren || som giver sand hvis en eller begge er sande.

false || false = false
false || true = true
false || true = true
true || true = true  !!

altså programmerings-eller betyder ikke helt det samme som tale-eller. Det du tænker på er exclusiv or (XOR) som skrives ~~ i java.

XOR
false || false = false
false || true = true
false || true = true
true || true = false
Avatar billede jakoba Nybegynder
15. april 2002 - 13:19 #7
Nej det kan den ikke.

prøv at forklare hvad du mener med det.

såvidt jeg kan forstå det giver
    a eller og b
overhovedet ingen mening.

mvh JakobA
Avatar billede jakoba Nybegynder
15. april 2002 - 13:26 #8
Du kan fx skrive det op ligesom codemon gør ovenfor

A    operator  B      resultat
sand    || &&  sand      ______
sand    || &&  falsk      ______
falsk  || &&  sand      ______
falsk  || &&  falsk      ______

og så udfylde i kolonnen resultater om de enkelete liner skal give sand eller falsk.
Avatar billede codemon Nybegynder
15. april 2002 - 13:29 #9
betingelse 3 skulle have været true || false = true

if (if(string.equals("a") || string.equals("b") || string.equals("c"))

Vil give sand hvis string er eksakt a, b eller c (eller flere af dem, som jo ikke giver nogen mening)

Hvis du vil se om et tegn er repræsenteret i string kan du bruge string.indexOf("a") i stedet for equals

if(string.indexOf("a")!=-1 || && string.indexOf("b")!=-1 || && string.indexOf("c")!=-1)
Avatar billede Slettet bruger
15. april 2002 - 13:29 #10
Jeg prøver:

String input = "dette er en test";

hvis der i input findes "t" eller/og "p" eller/og
men derfor ikke nødvendigvis alle bogstaver. Men mindst ét er:
String input = ok;

men jeg prøver at finde ud af det fordi codemon beskriver at || opperatoren giver sand hvis en eller begge er sande.

Det skulle sådan set løse problemet. Men jeg kan blot ikke rigtig få det til at virke.
Avatar billede codemon Nybegynder
15. april 2002 - 13:31 #11
ups IKKE || && men kun ||, jeg kopierede det forkerte sted.
Avatar billede Slettet bruger
15. april 2002 - 13:42 #12
Tak for hjælpen.
Men hvad er !=-1?
Index kan vel ikke tælle udenfor indexet? Eller hvad gør disse opperatorer?
Avatar billede codemon Nybegynder
15. april 2002 - 13:48 #13
indexOf retunerer -1 hvis strengen ikke er repræsenteret. Jeg vil foreslå dig at bruge suns java API dokumentation.
http://java.sun.com/j2se/1.4/docs/api/
den kan også downloades.
Avatar billede Slettet bruger
15. april 2002 - 13:50 #14
OK
Avatar billede nielsbrinch Nybegynder
06. oktober 2003 - 17:14 #15
Gider nogen give et eksakt eksempel på hvordan XOR bruges?
Avatar billede nielsbrinch Nybegynder
06. oktober 2003 - 17:23 #16
Menes der det her?

    public static byte[] XOR(byte[] buffer1, byte[] buffer2)
    {
        byte[] result = new byte [buffer1.length];

        short n = (short) 0;
        while (n<buffer1.length){
            result[n] = (byte) (buffer1[n]^buffer2[n]);
            n++;
        }
        return result;
    }
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