如何在Java中检查一个字符串是否是数字

1047

在解析字符串之前,如何检查它是否为数字?


42
所有使用正则表达式提出的解决方案都不能用于十六进制数字。 - Oscar Castiblanco
在编程中,传递空字符串到matches(...)函数将会抛出NullPointer异常。 - Hitesh Sahu
请参考Max Malysh的答案,其中提供了一个简洁的Java 8解决方案,无需使用第三方库。 - Andy Thomas
@HiteshSahu 最新版本(包括Java 6.x和7.x)似乎能够优雅地处理null字符串。 - lifebalance
所有提出使用Integer.parseInt()的解决方案都无法正确解析包含“NumberFormatException”的移动电话号码。 - Not a bug
@OscarCastiblanco 在给定的基数中,_所有_字符串都是数字。 - bfontaine
41个回答

-2
import java.util.Scanner;

public class TestDemo {
    public static void main(String[] args) {
        boolean flag = true;
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the String:");
        String str = sc.nextLine();

        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) > 48 && str.charAt(i) < 58) {
                flag = false;
                break;
            }
        }

        if(flag == true) {
            System.out.println("String is a valid String.");
        } else {
            System.out.println("String contains number.");
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接