我正在尝试解析并将2个数字加在一起,我不知道它们是哪个类型(int,float等),并且我试图将结果存储在最合适的类型中。例如,如果我得到2个整数,我希望结果是一个int,但如果我得到一个int和一个double,我希望结果是一个double。我该怎么做呢?
我的一个想法是首先尝试解析为int,然后是long,然后是float,...以查看它是哪种类型。有没有更好的方法来做到这一点,而不是尝试/捕获NumberFormatExceptions?
例如:
String number1 = "5";
String number2 = "3.4";
Object answer = add(number1, number2);
add()会是什么样的?
答案 0 :(得分:4)
我会将所有内容视为double
或BigDecimal
。这比尝试找到“最佳”类型更简单,也可能更有效。
答案 1 :(得分:1)
如果您确定数字有效(例如其中没有特殊符号),那么我会在输入中搜索点(.
)。如果我找到一个点,我会将其解析为double
;如果不是,请int
。