Boolean.parseBoolean (“1”) = false…?
아파서 죄송합니다 ... HashMap<String, String> o
o.get('uses_votes'); // "1"
아직...
Boolean.parseBoolean(o.get('uses_votes')); // "false"
나는 그것이 ....parseBoolean
표준을 받아들이지 않는 것 같아요 0 = false
1 = true
?
내가 뭔가 잘못했거나 내 코드를 다음과 같이 래핑해야할까요?
boolean uses_votes = false;
if(o.get('uses_votes').equals("1")) {
uses_votes = true;
}
감사
"true"
boolean을 나타내는 문자열 값만 허용합니다 true
. 당신이 할 수있는 최선은
boolean uses_votes = "1".equals(o.get("uses_votes"));
(가) 경우 또는 Map
실제로 "실재물"을 나타냅니다, 내가 생각하는 자바 빈즈는 더 나은 방법입니다. 또는 구성 설정을 나타내는 경우 Apache Commons Configuration을 살펴볼 수 있습니다 .
가능한 모든 값을 부울로 변환하는 작은 유틸리티 함수가 있습니다.
private boolean convertToBoolean(String value) {
boolean returnValue = false;
if ("1".equalsIgnoreCase(value) || "yes".equalsIgnoreCase(value) ||
"true".equalsIgnoreCase(value) || "on".equalsIgnoreCase(value))
returnValue = true;
return returnValue;
}
문서 에 따르면 (강조 내) :
문자열 인수를 부울로 구문 분석합니다. 반환 된 부울은 문자열 인수가 null이 아니고 대소 문자를 무시하고 문자열 "true" 와 동일한 경우 true 값을 나타냅니다 .
C의 동작을 얻으려는 경우 ( 0 == false
다른 모든 것은 true
) 다음과 같이 할 수 있습니다.
boolean uses_votes = Integer.parseInt(o.get("uses_votes")) != 0;
나는 이것이 오래된 스레드라는 것을 알고 있지만 C 구문에서 빌리는 것은 어떻습니까?
(o.get('uses_votes')).equals("1") ? true : false;
Thomas, 래퍼 코드 또는 조건 자체가 Java에서 원하는 작업을 수행하는 가장 깨끗한 방법이라고 생각합니다. "1"을 Boolean True 값으로 변환하는 것입니다. 실제로, "0"과 비교하고 역을 취하면 0을 거짓으로 취급하고 나머지는 모두 참으로 취급하는 C 행동과 일치합니다.
Boolean intStringToBoolean(numericBooleanValueString) {
return !"0".equals(numericBooleanValueString);
}
참고로
"true"또는 "false"문자열 이외의 항목에 대해 null 값을 가져야하는 경우 아래 함수를 사용할 수 있습니다.
public Boolean tryParseBoolean(String inputBoolean)
{
if(!inputBoolean.equals("true")&&!inputBoolean.equals("false")) return null;
return Boolean.valueOf(inputBoolean);
}
'y', '1', 'true', 'on'또는 유사한 방식으로 추가하는 모든 항목이 오면 true를 반환합니다.
boolean getValue(String value) {
return ("Y".equals(value.toUpperCase())
|| "1".equals(value.toUpperCase())
|| "TRUE".equals(value.toUpperCase())
|| "ON".equals(value.toUpperCase())
);
}
Java는 강력한 형식입니다. 0과 1은 부울과 다른 유형 인 숫자입니다. 숫자는 부울과 같지 않습니다.
나는 같은 질문을 가지고 그것을 해결했습니다.
Boolean use_vote = o.get('uses_votes').equals("1") ? true : false;
이건 어때?
boolean uses_votes =
( "|1|yes|on|true|"
.indexOf("|"+o.get("uses_votes").toLowerCase()+"|")
> -1
);
아주 간단한 방법 :
resultBoolean = ( valTest == "true" );
valTest에 문자열 "true"가 있으면 부울 결과는 true가되고 그렇지 않으면 false가됩니다. 0 또는 1 값에 사용할 수 있습니다.
resultBoolean = ( valTest == "1" );
참고 URL : https://stackoverflow.com/questions/7734202/boolean-parseboolean1-false
'development' 카테고리의 다른 글
SVG 재정렬 Z- 색인 (Raphael 선택 사항) (0) | 2020.11.07 |
---|---|
Bash의 파일 이름 길이 제한 (0) | 2020.11.07 |
`목록 변환 (0) | 2020.11.07 |
std :: vector :: resize () 대 std :: vector :: reserve () (0) | 2020.11.07 |
열 유형을 변경하고 null이 아닌 설정 (0) | 2020.11.07 |