String 객체를 Boolean 객체로 변환하는 방법
변환 방법String
에 반대하다.Boolean
오브젝트?
시행(필요한 결과 유형에 따라 다름):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
장점:
- Boolean: 이렇게 하면 Boolean의 새로운 인스턴스가 생성되지 않으므로 성능이 향상되고 가비지 수집이 줄어듭니다.다음 중 하나의 두 가지 인스턴스를 재사용합니다.
Boolean.TRUE
아니면Boolean.FALSE
. - boolean: 인스턴스는 필요 없습니다.원시 유형을 사용합니다.
공식 문서는 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
문자열이 null이 아닌 경우 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월 현재로서 가장 좋은 방법은 Apache의BooleanUtils.toBoolean
.
그러면 부울 유사 문자열이 Y, yes, true, N, no, false 등 부울로 변환됩니다.
정말 편리해!
Apache Commons 라이브러리 클래스 사용:
String[] values= new String[]{"y","Y","n","N","Yes","YES","yes","no","No","NO","true","false","True","False","TRUE","FALSE",null};
for(String booleanStr : values){
System.out.println("Str ="+ booleanStr +": boolean =" +BooleanUtils.toBoolean(booleanStr));
}
결과:
Str =N: boolean =false
Str =Yes: boolean =true
Str =YES: boolean =true
Str =yes: boolean =true
Str =no: boolean =false
Str =No: boolean =false
Str =NO: boolean =false
Str =true: boolean =true
Str =false: boolean =false
Str =True: boolean =true
Str =False: boolean =false
Str =TRUE: boolean =true
Str =FALSE: boolean =false
Str =null: boolean =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.");
}
문자열을 부울로 변환하는 방법.
저는 이렇게 했습니다.
"1##true".contains( string )
내 경우는 대부분 1이거나 사실이다.나는 해시를 칸막이로 사용한다.
String의 부울값을 취득하려면 , 다음의 순서를 실행합니다.
public boolean toBoolean(String s) {
try {
return Boolean.parseBoolean(s); // Successfully converted String to boolean
} catch(Exception e) {
return null; // There was some error, so return null.
}
}
오류가 발생하면 null이 반환됩니다.예:
toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null
왜 정규 표현을 쓰지 않는가?
public static boolean toBoolean( String target )
{
if( target == null ) return false;
return target.matches( "(?i:^(1|true|yes|oui|vrai|y)$)" );
}
이 문제를 단순화하기 위해 소유즈-토 라이브러리를 만들었습니다(X에서 Y로 변환).유사한 질문에 대한 SO 답변일 뿐입니다.이렇게 간단한 문제로 도서관을 이용하는 것이 이상할 수도 있지만, 비슷한 경우라면 많은 도움이 됩니다.
import io.thedocs.soyuz.to;
Boolean aBoolean = to.Boolean("true");
확인 부탁드립니다.매우 심플하고 편리한 기능이 많이 있습니다.
http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx 를 참조해 주세요.
이것으로 무엇을 해야 할지 알 수 있습니다.
메서드 상세
parseBoolean
public static boolean parseBoolean(String s)
string으로 합니다.가 true가 되는 부울은 .
null
를 무시한 채 "과.true
파라미터:
s
하는 문자열 - 해석할 부울 표현반환값: string 인수로 표시되는 부울값
이후: 1.5
시스템 클래스별로 모든 문자열에 해당하는 부울 값을 직접 설정하고 어디서나 액세스할 수 있습니다.
System.setProperty("n","false");
System.setProperty("y","true");
System.setProperty("yes","true");
System.setProperty("no","false");
System.out.println(Boolean.getBoolean("n")); //false
System.out.println(Boolean.getBoolean("y")); //true
System.out.println(Boolean.getBoolean("no")); //false
System.out.println(Boolean.getBoolean("yes")); //true
언급URL : https://stackoverflow.com/questions/1538755/how-to-convert-string-object-to-boolean-object
'programing' 카테고리의 다른 글
lodash를 사용하여 개체에서 정의되지 않은 값과 null 값을 제거하려면 어떻게 해야 합니까? (0) | 2022.10.30 |
---|---|
라이브러리를 사용하지 않고 python에서 datetime을 사용자 지정 개월 단위로 늘리는 방법 (0) | 2022.10.30 |
MySQL/MariaDB: 케이스 스테이트먼트를 사용하여 프로시저를 만들 수 없습니다. (0) | 2022.10.30 |
SQL 쿼리를 JSON 형식의 텍스트 파일로 내보내기 (0) | 2022.10.21 |
Python 들여쓰기 수정 방법 (0) | 2022.10.21 |