418 votes

Convertir boolean en int en Java

Quelle est la manière la plus acceptée de convertir un booléen en int en Java?

705voto

Jmix90 Points 1830
 int myInt = (myBoolean) ? 1 : 0;
 

^^

PS: vrai = 1 et faux = 0

164voto

Grodriguez Points 9945
int val = b? 1 : 0;

81voto

barjak Points 4682

Utilisation de l'opérateur ternaire est le plus simple, le plus efficace, et plus lisible de faire ce que vous voulez. Je vous encourage à utiliser cette solution.

Cependant, je ne peux pas résister à proposer une alternative, artificiel, inefficace, illisible solution.

int boolToInt(Boolean b) {
    return b.compareTo(false);
}

Hey, les gens aiment voter pour de tels frais réponses !

Modifier

En passant, j'ai souvent vu des conversions à partir d'un boolean int dans le seul but de faire une comparaison des deux valeurs (en général, dans les implémentations d' compareTo méthode). Boolean#compareTo est la voie à suivre dans ces cas spécifiques.

Edit 2

Java 7 a introduit une nouvelle fonction utilitaire qui fonctionne avec les types primitifs directement, Boolean#compare (Merci shmosel)

int boolToInt(boolean b) {
    return Boolean.compare(b, false);
}

53voto

boolean b = ....; 
int i = -("false".indexOf("" + b));

28voto

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

simple

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X