在Java中将字符串转换为数字

Lak*_*bhu 7 java primitive-types

如果字符串是java中的任何有效数字(比如int,long,double等),我如何将字符串转换为抽象数字.

我不会知道字符串中的数字类型,所以我不能使用特定的原始解析(如Integer.parseInt,Long.parseLong等).有没有通用的方法来转换它?

例如:

  • 字符串 - >数字
  • "23423" - > 23423
  • "34.3" - > 34.3
  • "45364573747546" - > 45364573747546

min*_*eek 9

使用NumberFormat.Number无法实例化,因为它是一个抽象类.

 Number number = NumberFormat.getInstance().parse(string);
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的唯一缺点是它也会将明显的文本字符串解析为数字,只要它们以数字开头。即“1.Textfield”将无一例外地被解析为1。 (3认同)
  • 注意:[`NumberFormat.getInstance`](https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/text/NumberFormat.html#getInstance()) 返回一个***当前默认格式区域设置***的通用数字格式。请注意,如果您不想根据区域设置将 `2.000` 解析为 `2` 或 `2000` - 您应该指定与输入的预期格式相匹配的区域设置。 (2认同)