Comment convertir un String
object en Boolean
object?
Réponses
Trop de publicités?Essayez (selon le type de résultat que vous voulez):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Avantage :
- Booléen : ce n'est pas de créer de nouvelles instances de type Boolean, le rendement est meilleur (et moins de garbage collection). Il réutiliser les deux cas
Boolean.TRUE
ouBoolean.FALSE
. - booléen : pas d'instance est nécessaire, vous devez utiliser le type de primitive.
La documentation officielle est la Javadoc.
Mise à JOUR :
L'autoboxing pourrait aussi être utilisé, mais il a un coût de performance.
Je suggère de l'utiliser uniquement quand vous pourriez avoir à jeter vous-même, et non pas quand le plâtre est évitable.
Vous devez être prudent lors de l'utilisation d' un Booléen.valueOf(string) ou Booléen.parseBoolean(chaîne de caractères). La raison pour cela est que les méthodes renverra toujours false si la Chaîne n'est pas égale à "true" (la casse est ignorée).
Par exemple:
Boolean.valueOf("YES") -> false
En raison de ce comportement que je recommande d'ajouter un mécanisme pour s'assurer que la chaîne de caractères qui doit être traduit en une valeur Booléenne suit un format spécifié.
Par exemple:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
En plus de l'excellente réponse de KLE, nous pouvons également faire quelque chose de plus flexible:
boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") ||
string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") ||
string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") ||
string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");
(inspiré par la réponse de zlajo ... :-))