【发布时间】:2016-01-06 05:14:29
【问题描述】:
如何从 Java 中的字符串中解析任何数字类型?
我知道像 Integer.parseInt(myString) 和 Double.parseDouble(myString) 这样的方法,但我最想要的是像 Number.parseNumber(myString) 这样不存在的方法。我怎样才能以另一种方式实现这种行为? (我希望解析后的数字能够“准确”地反映字符串,例如小数位数)。
例子:
"0" => 数字(Integer 子类内部)
"0.0" => 数字(在 Double 子类内部)
此外,没有像检查小数分隔符等丑陋的东西。
【问题讨论】:
-
new BigDecimal(yourString)。那应该给你一个Number代表字符串的值。 (如果您说 但我希望它是double(如果它是“0.0”)和int(如果它是“0”),我真的不明白您希望它如何工作. 变量有什么类型,你想存储结果?) -
一般来说,你不能。方法重载不允许您混合返回类型。
-
澄清一下... Float、Double、Integer Long 等都扩展了 Number 超类,它是抽象的,但我仍然可以拥有该类型的变量。我希望它返回一个内部任何这些类的数字
-
您希望它使用适合的最小类型吗?例如。 “1024”适合
Short、Integer和Long。理想情况下,我猜您希望它返回Short。 -
是的。这并不重要,但我希望它返回最合适的子类。
标签: java string-parsing