首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中检查字符串是否只包含数字

如何在Java中检查字符串是否只包含数字
EN

Stack Overflow用户
提问于 2013-02-27 19:51:42
回答 8查看 551.4K关注 0票数 168

在Java for String类中有一个名为matches的方法,如何使用该方法通过正则表达式检查我的字符串是否只有数字。我尝试了下面的例子,但它们都返回了false作为结果。

代码语言:javascript
复制
String regex = "[0-9]";
String data = "23343453";
System.out.println(data.matches(regex));

代码语言:javascript
复制
String regex = "^[0-9]";
String data = "23343453";
System.out.println(data.matches(regex));
EN

回答 8

Stack Overflow用户

发布于 2013-02-27 19:53:50

您还可以使用Apache Commons中的NumberUtil.isNumber(String str)

票数 35
EN

Stack Overflow用户

发布于 2016-02-02 18:07:59

就性能而言,使用正则表达式的代价很高。尝试将字符串解析为长值是低效和不可靠的,而且可能不是您所需要的。

我的建议是简单地检查每个字符是否是一个数字,使用Java 8 lambda表达式可以有效地完成以下操作:

代码语言:javascript
复制
boolean isNumeric = someString.chars().allMatch(x -> Character.isDigit(x));
票数 13
EN

Stack Overflow用户

发布于 2013-02-27 20:05:59

还有一个尚未发布的解决方案:

代码语言:javascript
复制
String regex = "\\p{Digit}+"; // uses POSIX character class
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15111420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档