Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 String 값이 Boolean 유형인지 확인하는 방법은 무엇입니까?

<시간/>

lang 패키지의 Boolean 클래스는 parseBoolean() 및 valueOf()라는 두 가지 메서드를 제공합니다.

  • parseBoolean(문자열) - 이 메소드는 String 변수를 받아들이고 boolean을 반환합니다. 주어진 문자열 값이 "true"이면(대소문자에 관계없이) 이 메서드는 true를 반환하고 그렇지 않으면 null이거나 false이거나 다른 값이면 false를 반환합니다.

  • valueOf(문자열 s) − 이 메소드는 String 값을 받아 파싱하고 주어진 값을 기반으로 Boolean 클래스의 객체를 반환합니다. 생성자 대신 이 메서드를 사용할 수 있습니다. 주어진 String 값이 "true"이면 이 메서드는 true를 반환하거나 false를 반환합니다.

import java.util.Scanner;
public class VerifyBoolean {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a string value: ");
      String str = sc.next();
      boolean result = Boolean.parseBoolean(str);
      System.out.println(result);
      boolean result2 = Boolean.valueOf(str);
      System.out.println(result2);
   }
}

출력1

Enter a string value:
true
true
true

출력2

Enter a string value:
false
false
false

그러나 이러한 방법 중 어느 것도 주어진 문자열의 값이 "true"인지 여부를 확인하지 않습니다. 문자열 값이 부울 유형인지 여부를 확인할 수 있는 방법이 없습니다. if 루프 또는 정규식을 사용하여 직접 확인해야 합니다.

예시 :if 루프 사용

import java.util.Scanner;
public class VerifyBoolean {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a string value: ");
      String str = sc.next(); if(str.equalsIgnoreCase("true")||str.equalsIgnoreCase("false")){
      System.out.println("Given string is a boolean type");
      }else {
         System.out.println("Given string is not a boolean type");
      }
   }
}

출력1

Enter a string value:
true
Given string is a boolean type

출력2

Enter a string value:
false
Given string is a boolean type

출력3

Enter a string value:
hello
Given string is not a boolean type

예:정규식 사용

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VerifyBoolean {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter a string value: ");
      String str = sc.next();
      Pattern pattern = Pattern.compile("true|false", Pattern.CASE_INSENSITIVE);
      Matcher matcher = pattern.matcher(str);
      if(matcher.matches()) {
         System.out.println("Given string is a boolean type");
      } else {
         System.out.println("Given string is not a boolean type");
      }
   }
}

출력1

Enter a string value:
true
Given string is a boolean type

출력2

Enter a string value:
false
Given string is a boolean type

출력3

Enter a string value:
hello
Given string is not a boolean type