java 判断一行输入是否为有效数字

2022/7/2 1:24:03

本文主要是介绍java 判断一行输入是否为有效数字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

//使用原生的方式来判断一个字符串是否是一个有效的数字
    public void checkNumber(String str){
        int count = 0;

        //没有输入任何东西
        if(str.length() == 0){
            System.out.println("你什么都没输入!");
            return;
        }

        //字符串长度为1
        else if(str.length() == 1){
            if((int)(str.charAt(0)) < 48 || (int)(str.charAt(0)) > 57){
                System.out.println("你输入的不是数字!只有1位还输错,什么鬼?");
                return;
            }
        }

        //输入的长度大于等于2位
        else {
            for(int i=0; i<str.length(); i++) {
                //若出现数字、小数点和负号以外的字符,判定为非数字
                if (((int) (str.charAt(i)) < 48 || (int) (str.charAt(i)) > 57) && (int) (str.charAt(i)) != 45 && (int) (str.charAt(i)) != 46) {
                    System.out.println("你输入的不是一个数字!字符串中出现了数字、小数点和负号以外的字符!");
                    return;
                }
            }
            //第1位是小数点
            if((int)(str.charAt(0)) == 46){
                System.out.println("你输入的不是一个数字!第1位就是小数点,什么鬼?");
                return;
            }
            //第1位是负号
            else if((int)(str.charAt(0)) == 45){
                //第2位是负号
                if((int)(str.charAt(1)) == 45){
                    System.out.println("你输入的不是一个数字!前两个字符都是负号!");
                    return;
                }
                else{
                    //原字符串去掉第一位
                    str = str.substring(1);
                    checkNumber(str);
                    return;
                }
            }

            //第1位是0
            else if((int)(str.charAt(0)) == 48) {
                //第2位不是小数点
                if ((int) (str.charAt(1)) != 46) {
                    System.out.println("你输入的不是一个数字!第一位是0,但是第二位不是小数点!");
                    return;
                }
                //第1位是0,第2位是小数点,但后面没数字了
                else if ((int) (str.charAt(1)) == 46 && str.length() == 2) {
                    System.out.println("你输入的不是一个数字!第一位是0,第二位是小数点,但没有第3位了!");
                    return;
                }
                //第1位是0,第2位是小数点,第3位还有字符
                else {
                    for (int i = 2; i < str.length(); i++) {
                        if ((int) (str.charAt(i)) < 48 || (int) (str.charAt(i)) > 57) {
                            System.out.println("你输入的不是一个数字!第一位是0,第二位是小数点,但第3位之后出现了非数字字符!");
                            return;
                        }
                    }
                }
            }

            //第一位是1-9的数字
            else {
                for(int i=1; i<str.length(); i++) {
                    //如果第2位之后出现了非数字
                    if ((int) (str.charAt(i)) < 48 && (int) (str.charAt(i)) > 57) {
                        //如果第2位之后出现了不是小数点的非数字
                        if((int) (str.charAt(i)) != 46) {
                            System.out.println("你输入的不是一个数字!第二位以后出现了数字和小数点之外的字符!");
                            return;
                        }
                        //如果第2位之后发现小数点
                        else {
                            count++;
                            if(count == 2) {
                                System.out.println("你输入的不是一个数字!第二位以后出现了至少两个小数点!");
                                return;
                            }
                        }
                    }
                }
            }
        }

        //以上判定不是有效数字的情况都未发生
        System.out.println("Very Good!你输入的是一个有效数字!");
    }
}


这篇关于java 判断一行输入是否为有效数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程