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

Java에서 문자열이 이중으로 구문 분석 가능한지 확인하는 방법은 무엇입니까?

<시간/>

parseDouble() 메소드 사용

parseDouble() java.lang.Double 메소드 클래스는 String 값을 받아 구문 분석하고 주어진 String의 double 값을 반환합니다.

이 메서드에 null 값을 전달하면 NullPointerException이 발생하고 이 메서드가 주어진 문자열을 이중 값으로 구문 분석할 수 없으면 NumberFormatException이 발생합니다.

따라서 특정 문자열이 두 배로 구문 분석 가능한지 여부를 확인하려면 parseDouble 메서드에 전달하고 이 줄을 try-catch 블록으로 래핑합니다. 예외가 발생하면 주어진 문자열이 이중으로 구문 분석될 수 없음을 나타냅니다.

예시

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = Double.parseDouble(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

출력

Enter a string value:
2245g
Given String is not parsable to double

valueOf() 메소드 사용

마찬가지로 valueOf() Double 클래스의 메서드(또한)는 String 값을 매개변수로 받아들이고 초과 공백을 잘라내고 문자열이 나타내는 double 값을 반환합니다. 지정된 값을 두 배로 구문 분석할 수 없는 경우 이 메서드는 NumberFormatException을 발생시킵니다.

예시

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = Double.valueOf(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

출력

Enter a string value:
2245g
Given String is not parsable to double

Double 클래스의 생성자 사용

Double 클래스의 생성자 중 하나는 String을 매개변수로 받아 주어진 값을 래핑하는 (Double) 객체를 생성합니다. 이 생성자에 전달된 문자열을 Double로 구문 분석할 수 없으면 NumberFormatException이 발생합니다.

예시

import java.util.Scanner;
public class ParsableToDouble {
   public static void main(String args[]) {
      try {
         Scanner sc = new Scanner(System.in);
         System.out.println("Enter a string value: ");
         String str = sc.next();
         Double doub = new Double(str);
         System.out.println("Value of the variable: "+doub);
      }catch (NumberFormatException ex) {
         System.out.println("Given String is not parsable to double");
      }
   }
}

출력

Enter a string value:
2245g
Given String is not parsable to double