425 Stimmen

Boolesch in int umwandeln in Java

Welches ist die gängigste Methode zur Umwandlung einer boolean zu einer int in Java?

28voto

Adam Punkte 327
public int boolToInt(boolean b) {
    return b ? 1 : 0;
}

einfach

20voto

triForce420 Punkte 699

Wenn Sie Apache Commons Lang (und ich glaube, das wird in vielen Projekten verwendet), können Sie es einfach so verwenden:

int myInt = BooleanUtils.toInteger(boolean_expression); 

toInteger Methode gibt 1 zurück, wenn boolean_expression wahr ist, sonst 0

16voto

Das hängt von der jeweiligen Situation ab. Oft ist der einfachste Ansatz der beste, weil er leicht zu verstehen ist:

if (something) {
    otherThing = 1;
} else {
    otherThing = 0;
}

oder

int otherThing = something ? 1 : 0;

Manchmal ist es jedoch sinnvoll, statt eines booleschen Flags eine Enum zu verwenden. Stellen wir uns vor, es gibt synchrone und asynchrone Prozesse:

Process process = Process.SYNCHRONOUS;
System.out.println(process.getCode());

In Java kann enum zusätzliche Attribute und Methoden haben:

public enum Process {

    SYNCHRONOUS (0),
    ASYNCHRONOUS (1);

    private int code;
    private Process (int code) {
        this.code = code;
    }

    public int getCode() {
        return code;
    }
}

8voto

codaddict Punkte 426877

Wenn true -> 1 y false -> 0 Mapping ist, was Sie wollen, können Sie tun:

boolean b = true;
int i = b ? 1 : 0; // assigns 1 to i.

7voto

Wenn Sie etwas verschleiern wollen, verwenden Sie dies:

System.out.println( 1 & Boolean.hashCode( true ) >> 1 );  // 1
System.out.println( 1 & Boolean.hashCode( false ) >> 1 ); // 0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X