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 判断一行输入是否为有效数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-0601-电商商品中心解密:仅凭SKU真的足够吗?
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能