如何检查一个对象是否可以转换为另一种类型?

6

假设我有两个字符串对象:"25000.00"和"1234",它们是在程序运行时获取的。如何检查它们是否可以转换为double和int类型?Java中是否有已经实现的方法或关键字可以做到这一点?


1
要了解强制类型转换,请查看此教程:http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html - BalusC
可能相关:https://stackoverflow.com/q/40402756/547270 - scrutari
3个回答

8
您可以使用Integer.parseIntDouble.parseDouble静态方法来进行这个操作。每个方法都接收一个String并将其转换为相应的intdouble。您可以调用此函数来检查字符串是否可转换。如果转换是可能的,则会执行转换。否则,方法会抛出NumberFormatException异常,您可以捕获并作出响应。例如:
try {
    int value = Integer.parseInt(myString);
    // Yes!  An integer.
} catch (NumberFormatException nfe) {
    // Not an integer
}

希望这能有所帮助!

3
只是想澄清一下:String类型的变量永远无法转换为Double或者Integer类型。但是,你可以使用Double.parseDouble和Integer.parseInt方法将String类型解析为数字。如果无法解析,则会抛出NumberFormatException异常。你可以捕获该异常并适当处理。转换和解析是两个不同的概念。
编辑:我看到@BalusC已经编辑了问题,并将“cast”改为“convert”。我想我的评论现在已经多余了 :)

感谢澄清。我一直以为强制转换和解析是同一件事情。 - Terence Ponce
绝对不是。但它们都属于转换的形式。 - BalusC

0
在C#中,有一种方法可以检查一个对象是否可以转换为其他对象。但我想,Integer.parseInt或Double.parseDouble就足够了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接