programing

String 객체를 Boolean 객체로 변환하는 방법

goodsources 2022. 10. 30. 11:11
반응형

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 를 참조해 주세요.

이것으로 무엇을 해야 할지 알 수 있습니다.

Java 문서에서 얻은 내용은 다음과 같습니다.

메서드 상세

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

반응형