Je suis un débutant Java. J'essaie de déterminer si un nombre est un double avec quelque chose comme ceci:
if ( typeof ( items.elementAt(1) )== Double ) {
sum.add( i, items.elementAt(1));
}
J'apprécierais que quelqu'un me dise comment réorganiser la syntaxe pour que cela fonctionne correctement.
Essaye ça:
if (items.elementAt(1) instanceof Double) {
sum.add( i, items.elementAt(1));
}
La réflexion est plus lente, mais fonctionne dans une situation où vous voulez savoir si c'est du type Chien ou un Chat et non une instance de Animal. Donc, vous feriez quelque chose comme:
if(null != items.elementAt(1) && items.elementAt(1).getClass().toString().equals("Cat"))
{
//do whatever with cat.. not any other instance of animal.. eg. hideClaws();
}
Ne pas dire que la réponse ci-dessus ne fonctionne pas, sauf que la vérification à zéro est nécessaire.
Une autre façon de répondre consiste à utiliser des génériques et à garantir que Double est un élément quelconque.
List<Double> items = new ArrayList<Double>();
Comme il s’agit de la première question de Google, je vais également ajouter le style JavaScript typeof
alternatif:
myObject.getClass().getName() // String
Utilisez une expression régulière pour accomplir cette tâche. Veuillez vous reporter au code ci-dessous.
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);
}
}