IT

Java에서 숫자가 Double인지 확인

lottoking 2020. 9. 16. 07:56
반응형

Java에서 숫자가 Double인지 확인


저는 자바입니다. 나는 숫자가 다음과 같은 Double인지 알아 내려고 노력하고 있습니다.

if ( typeof ( items.elementAt(1) )== Double ) {
       sum.add( i, items.elementAt(1));
}

누군가가 선택하도록하는 구문을 재정렬하는 방법을 알려 주시면 감사하겠습니다.


이 시도 :

if (items.elementAt(1) instanceof Double) {
   sum.add( i, items.elementAt(1));
}

반사는 느리지 만 Animal 인스턴스가 아닌 Dog 또는 Cat 유형인지 알고 싶은 상황에서 작동합니다. 그래서 당신은 다음과 같이 할 것입니다.

if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}

위의 대답을 말하지 않는 언어 null 검사 부분이 필요한 경우를 제외하고 작동하지 않습니다.

대답하는 또 다른 방법은 제네릭을 사용하는 항목의 모든 요소로 이중을 보장합니다.

List<Double> items = new ArrayList<Double>();

Google의 첫 번째 질문에 typeof여기에도 JavaScript 스타일 대안을 추가하겠습니다 .

myObject.getClass().getName() // String

이 작업을 수행하십시오 정규식을 사용하십시오. 아래 코드를 참조하십시오.

public static void main(String[] args) {
    try {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Enter your content: ");
        String data = reader.readLine();            
        boolean b1 = Pattern.matches("^\\d+$", data);
        boolean b2 = Pattern.matches("[0-9a-zA-Z([+-]?\\d*\\.+\\d*)]*", data); 
        boolean b3 = Pattern.matches("^([+-]?\\d*\\.+\\d*)$", data);
        if(b1) {
            System.out.println("It is integer.");
        } else if(b2) {
            System.out.println("It is String. ");
        } else if(b3) {
            System.out.println("It is Float. ");
        }           
    } catch (IOException ex) {
        Logger.getLogger(TypeOF.class.getName()).log(Level.SEVERE, null, ex);
    }
}

참고 URL : https://stackoverflow.com/questions/1641619/figuring-out-whether-a-number-is-a-double-in-java

반응형