Java 字符串 - 查看字符串是否仅包含数字而不是字母

2022-08-31 05:43:07

我有一个字符串,我在整个应用程序中加载,它从数字变为字母等。我有一个简单的语句,看看它是否包含字母或数字,但是,有些东西不能正常工作。下面是一个片段。if

String text = "abc"; 
String number; 

if (text.contains("[a-zA-Z]+") == false && text.length() > 2) {
    number = text; 
}

尽管该变量确实包含字母,但条件返回为 。和 应评估为两个条件,必须处理texttrue&&truenumber = text;

==============================

溶液:

我能够通过使用以下代码来解决此问题,该代码由对此问题的注释提供。所有其他帖子也是有效的!

我使用的工作来自第一条评论。尽管提供的所有示例代码似乎也是有效的!

String text = "abc"; 
String number; 

if (Pattern.matches("[a-zA-Z]+", text) == false && text.length() > 2) {
    number = text; 
}

答案 1

如果您要将数字处理为文本,请更改:

if (text.contains("[a-zA-Z]+") == false && text.length() > 2){

自:

if (text.matches("[0-9]+") && text.length() > 2) {

不要检查字符串是否不包含字母字符,而是检查以确保它包含数字。

如果您确实想使用数值,请使用或如下面其他人解释的那样。Integer.parseInt()Double.parseDouble()


顺便说一句,将布尔值与 或 进行比较通常被认为是不好的做法。只需使用 或 .truefalseif (condition)if (!condition)


答案 2

你也可以使用来自Apache Commons的NumberUtil.isCreatable(String str)。