[英]Figuring out whether a number is a Double in Java
我是一个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));
}
反射速度较慢,但适用于您想要知道是狗类型还是猫类而不是动物实例的情况。 所以你要做的事情如下:
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>();
由于这是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);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.