在 Java 中从字符串(也包含字母)获取 int

2022-09-01 06:17:52

我如何从字符串中获取int值,例如 - 即包含数字但也可能包含字母的字符串?423e

Integer.parseInt()失败,因为字符串必须完全是一个数字。


答案 1

将所有非数字替换为空白:其余字符串仅包含数字。

Integer.parseInt(s.replaceAll("[\\D]", ""))

这也将删除数字之间的非数字,因此成为."x1x1x"11

如果您需要确认字符串由可能跟在字母后面的数字序列(至少一个)组成,请使用以下命令:

s.matches("[\\d]+[A-Za-z]?")

答案 2

类将仅解析字符串,直到它达到不可解析的字符:

((Number)NumberFormat.getInstance().parse("123e")).intValue()

因此将返回 123。