如何在Java中检查字符串是否为数字?

我们将检查字符串是否为数字-借助逻辑,我们将解决此问题,

  • 第一步,我们将使用一个名为str的字符串变量,并将任何值存储在其中。

  • 在第二步中,我们将使用一个名为str_numeric的布尔变量,该变量存储布尔值(如true或false)。让我们假设给定的字符串是数字,因此最初的布尔变量str_numeric设置为true。

  • 在第三步中,我们将在try块中做一件事,我们将使用parseDouble()方法将String变量转换为Double,因为最初我们假设给定的字符串是数字,这就是我们首先进行转换的原因。

  • 如果抛出错误(即NumberFormatException),则意味着给定的String不是数字,然后将布尔变量str_numeric设置为false。否则,给定的字符串是一个数字。

示例

public class IsStringNumeric {
    public static void main(String[] args) {
        //我们已经使用双精度值初始化了一个字符串变量
        String str1 = "1248.258";
        //我们已经初始化了一个布尔变量,然后 
        //最初,我们假设字符串是数字 
        //以便将值设置为true-        
        boolean str_numeric = true;

        try {
            //这里我们将字符串转换为double- 
            //以及为什么我们要加倍,因为 
            //它是数字的大型数据类型,并且 
            //如果我们取整数,那么我们就不能工作 
            //具有双重值,因为我们无法隐蔽 
            //然后,将int翻倍为int- 
            //我们将获得一个异常,以便布尔变量 
            //设置为false意味着我们将得到错误的结果。 
            Double num1 = Double.parseDouble(str1);
        }

        //在这里它将引发一个异常 
        //当给定的输入字符串不是数字时 
        //然后将布尔变量设置为false。 
        catch (NumberFormatException e) {
            str_numeric = false;
        }

        //如果给定的字符串是数字,则执行if-
        if (str_numeric)
            System.out.println(str1 + " is a number");
        //如果给定的字符串不是数字,则执行否则       
        else
            System.out.println(str1 + " is not a number");
    }
}

输出结果

D:\Programs>javac IsStringNumeric.java

D:\Programs>java IsStringNumeric
1248.258 is a number