java如何剔除非数字字符

java如何剔除非数字字符

作者:Rhett Bai发布时间:2026-02-13阅读时长:0 分钟阅读次数:1

用户关注问题

Q
如何在Java中提取字符串中的数字?

我有一个包含字母和数字的字符串,想要只保留其中的数字,该怎么做?

A

使用正则表达式提取数字

可以利用Java的String类的replaceAll方法,使用正则表达式去除非数字字符。例如:

String result = inputString.replaceAll("[^0-9]", "");

这会删除所有除0-9数字以外的字符,只保留数字。

Q
如何过滤字符串中的非数字字符并转换成数字类型?

我想把一个包含数字和字母的字符串,对非数字部分剔除后,再转成整数类型,这样做合适吗?

A

剔除非数字字符后转换成数字

可以先使用replaceAll方法去掉非数字字符,然后使用Integer.parseInt或者Long.parseLong将结果转换成整数类型。例如:

String numericString = input.replaceAll("[^0-9]", "");
int number = Integer.parseInt(numericString);

需要确保过滤后的字符串不是空或过大,否则会抛出异常。

Q
有没有Java库可以帮助剔除字符串中的非数字内容?

除了使用正则表达式,Java有没有现成的库或者工具类能方便实现剔除非数字字符的需求?

A

利用Apache Commons Lang等库简化字符串处理

Apache Commons Lang提供了StringUtils等工具类,虽然没有直接的方法剔除非数字,但结合正则表达式使用能使代码更简洁。例如,使用StringUtils.replaceAll配合正则表达式实现清除非数字字符。此外,也可以使用Guava库的CharMatcher类来过滤字符,写法更加直观。