[java] Java에서 숫자가 Double인지 확인
저는 Java 초보자입니다. 나는 숫자가 다음과 같은 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));
}
답변
이것이 Google의 첫 번째 질문이므로 typeof
여기에도 JavaScript 스타일 대안을 추가하겠습니다 .
myObject.getClass().getName() // String
답변
반사는 느리지 만 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 검사 부분이 필요한 경우를 제외하고는 작동하지 않습니다.
대답하는 또 다른 방법은 제네릭을 사용하는 것이며 항목의 모든 요소로 Double을 보장합니다.
List<Double> items = new ArrayList<Double>();
답변
이 작업을 수행하려면 정규식을 사용하십시오. 아래 코드를 참조하십시오.
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);
}
}