[java] 문자열 객체를 부울 객체로 변환하는 방법?
String
객체를 Boolean
객체 로 변환하는 방법 ?
답변
원하는 결과 유형에 따라 시도하십시오.
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
이점:
- 부울 : 새 부울 인스턴스를 만들지 않으므로 성능이 향상되고 가비지 수집이 줄어 듭니다.
Boolean.TRUE
또는 의 두 인스턴스를 재사용합니다Boolean.FALSE
. - 부울 : 인스턴스가 필요하지 않으며 기본 유형을 사용합니다.
공식 문서는 Javadoc에 있습니다.
업데이트 :
오토 박싱도 사용할 수 있지만 성능 비용이 있습니다.
캐스트를 피할 수 없을 때가 아니라 스스로 캐스팅해야 할 때에 만 사용하는 것이 좋습니다.
답변
Boolean.valueOf (string) 또는 Boolean.parseBoolean (string)을 사용할 때는주의해야합니다 . 그 이유는 String이 “true”가 아닌 경우 메소드가 항상 false를 리턴하기 때문입니다 (대소 문자는 무시 됨).
예를 들면 다음과 같습니다.
Boolean.valueOf("YES") -> false
이 동작 때문에 부울로 변환해야하는 문자열이 지정된 형식을 따르도록 메커니즘을 추가하는 것이 좋습니다.
예를 들어 :
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
답변
Boolean b = Boolean.valueOf(string);
b
문자열이 널이 아니고 true
대소 문자를 무시 하면 값 은 true 입니다.
답변
KLE의 탁월한 답변 외에도 유연한 것을 만들 수 있습니다.
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");
(zlajo의 답변에서 영감을 얻었습니다 … :-))
답변
boolean b = string.equalsIgnoreCase("true");
답변
글쎄, 2018 년 1 월 현재와 같이 가장 좋은 방법은 아파치를 사용하는 것 BooleanUtils.toBoolean
입니다.
이렇게하면 문자열과 같은 부울이 부울로 변환됩니다 (예 : Y, 예, true, N, no, false 등).
정말 편리합니다!
답변
public static boolean stringToBool(String s) {
s = s.toLowerCase();
Set<String> trueSet = new HashSet<String>(Arrays.asList("1", "true", "yes"));
Set<String> falseSet = new HashSet<String>(Arrays.asList("0", "false", "no"));
if (trueSet.contains(s))
return true;
if (falseSet.contains(s))
return false;
throw new IllegalArgumentException(s + " is not a boolean.");
}
문자열을 부울로 변환하는 방법.