Java 从字符串获取基元数字类型的类

Java 从字符串获取基元数字类型的类,java,primitive,Java,Primitive,有没有一种简单的方法可以从字符串中获取原始数字类型的类 对于“42”,该方法将返回int.class 对于“25.8”它将返回float.class等 我只需要检查数字类型,因此该方法不必关心布尔值和字节 我在问,以防万一有人知道可以做这件事的库方法 有没有一种简单的方法可以从字符串中获取原始数字类型的类 阿福。。。不,没有 一个原因是许多数字字符串可以有多种表示类型;e、 g.“42”可以表示为: a字节,短,int或长 a浮点或双精度 上述的包装器类型 BigInteger或BigDeci

有没有一种简单的方法可以从字符串中获取原始数字类型的类

对于
“42”
,该方法将返回
int.class

对于
“25.8”
它将返回
float.class

我只需要检查数字类型,因此该方法不必关心布尔值和字节

我在问,以防万一有人知道可以做这件事的库方法

有没有一种简单的方法可以从字符串中获取原始数字类型的类

阿福。。。不,没有

一个原因是许多数字字符串可以有多种表示类型;e、 g.
“42”
可以表示为:

  • a
    字节
    int
  • a
    浮点
    双精度
  • 上述的包装器类型
  • BigInteger
    BigDecimal
    ,或
  • String
    StringBuilder
    StringBuffer
另一方面,像
“25.8”
这样的数字可能在任何基本类型或其包装中都没有精确的表示


如果(通常)没有一个正确答案,那么JavaSE库或任何常见的用户第三方库都没有提供通用解决方案也就不足为奇了

尝试使用switch case检查每种类型,正确的类型是您的类型。您可以使用正则表达式对字符串进行分类。此参考应帮助您-@w88该问题只涉及具有形式的字符串,例如
“java.lang.string”
而不是具有数字形式的字符串。我想是的,但我会等一会儿,以防万一有人知道库方法,不要忘记本地化(全球化)设置。有时在不同的全球化设置中有不同的小数分隔符。