Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java程序检查字符串是否为数字

Java 实例大全

在此程序中,您将学习不同的方法来检查Java中字符串是否为数字。

示例1:检查字符串是否为数字

public class Numeric {

    public static void main(String[] args) {

        String string = "12345.15";
        boolean numeric = true;

        try {
            Double num = Double.parseDouble(string);
        } catch (NumberFormatException e) {
            numeric = false;
        }

        if(numeric)
            System.out.println(string + " 是数字");
        else
            System.out.println(string + "  不是数字");
    }
}

运行该程序时,输出为:

12345.15 是数字

在上面的程序中,我们有一个名为string的字符串(String),它包含要检查的字符串。我们还有一个布尔值numeric,存储最终结果是否为数值。

为了检查字符串是否只包含数字,在try块中,我们使用Double的parseDouble()方法将字符串转换为Double

如果抛出错误(即NumberFormatException错误),则表示string不是数字,并设置numeric为false。否则,表示这是一个数字。

但是,如果要检查是否有多个字符串,则需要将其更改为函数。而且,逻辑基于抛出异常,这可能会非常昂贵。

相反,我们可以使用正则表达式的功能来检查字符串是否为数字,如下所示。

示例2:使用正则表达式(regex)检查字符串是否为数字

public class Numeric {

    public static void main(String[] args) {

        String string = "-1234.15";
        boolean numeric = true;

        numeric = string.matches("-?\\d+(\\.\\d+)?");

        if(numeric)
            System.out.println(string + " 是数字");
        else
            System.out.println(string + "  不是数字");
    }
}

运行该程序时,输出为:

-1234.15 是数字

在上面的程序中,我们使用regex来检查是否string为数字,而不是使用try-catch块。这是使用String的matches()方法完成的。

在matches()方法中

  • -?     允许零或更多-用于字符串中的负数。

  • \\d+ 检查字符串是否至少有1个或更多的数字(\\d)。

  • (\\.\\d+)? 允许零个或多个给定模式(\\.\\d+),其中

    • \\. 检查字符串是否包含.(小数点)

    • 如果是,则应至少跟一个或多个数字\\d+。

Java 实例大全