【问题标题】:Get Class of a primitive number type from a String从字符串中获取原始数字类型的类
【发布时间】:2016-10-24 01:52:13
【问题描述】:

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

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

对于"25.8",它将返回float.class,等等...

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

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

【问题讨论】:

  • 尝试使用 switch case 检查每种类型,正确的是你的类型
  • 您可以使用正则表达式对字符串进行分类。
  • 这个参考应该可以帮助你 - stackoverflow.com/questions/180097/…
  • @w88 该问题仅涉及具有格式的字符串,例如"java.lang.String" 不是数字形式

标签: java primitive


【解决方案1】:

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

AFAIK ...不,没有。

一个原因是许多数字字符串可以有多种表示类型;例如"42" 可以表示为:

  • byteshortintlong
  • floatdouble
  • 上述包装类型,
  • BigIntegerBigDecimal,或...
  • StringStringBuilderStringBuffer

另一方面,像 "25.8" 这样的数字可能在任何原始类型或其包装器中都没有精确表示。

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

【讨论】:

  • 感谢您的回答。我是这么想的,但我会等一下,以防万一有人知道库方法
  • 不要忘记本地化(全球化)设置。有时在不同的全球化设置中会有不同的小数分隔符。
猜你喜欢
  • 2011-01-25
  • 2023-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多