Ответ 1
Попробуйте следующее:
if (items.elementAt(1) instanceof Double) {
sum.add( i, items.elementAt(1));
}
Я новичок в Java. Я пытаюсь выяснить, является ли число Двойным с чем-то вроде этого:
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
Пойми, если кто-нибудь скажет мне, как изменить синтаксис, чтобы сделать эту работу должным образом.
Попробуйте следующее:
if (items.elementAt(1) instanceof Double) {
sum.add( i, items.elementAt(1));
}
Отражение происходит медленнее, но работает в ситуации, когда вы хотите узнать, является ли это тип Dog или Cat, а не экземпляр Animal. Итак, вы бы сделали что-то вроде:
if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}
Не сказать, что ответ выше не работает, кроме нулевой части проверки.
Другим способом ответа является использование дженериков, и вы гарантированно имеете 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);
}
}