public class TestInput {public static void main(String[] args) {System.out.println("请输入一个整数:");int num = 0;while (true) {Scanner input = new Scanner(System.in);if (input.hasNextInt()) {num = input.nextInt();break;} else {System.out.println("你的输入有误,请重新输入一个整数:");}}System.out.println(num);}
}
请输入一个整数:
0.3
你的输入有误,请重新输入一个整数:
sdad
你的输入有误,请重新输入一个整数:
sdadadade
你的输入有误,请重新输入一个整数:
.;'
你的输入有误,请重新输入一个整数:
1.23.
你的输入有误,请重新输入一个整数:
2
2

最近java输入的时候,经常碰到输入不合理引发的潜在bug,于是写了一个检测java输入是否合法的方法;其他类型输入应该类似。不清楚为什么每次都要在while循环中每次都要new一个scanner类。。但是不这样就一直循环“请重新输入一个整数”。。。

在一番探索后,并且看到了一位大佬的博客,获得了些许启发,Java中Scanner用法总结_Megustas_JJC的博客-CSDN博客_java scanner 可能像大佬所写,输出完的回车键,被next()收留了下来,所以导致了后边的结果,于是我对我的代码做了修改。

public class TestInput {public static void main(String[] args) {int[] a = new int[5];System.out.println("请输入一个整数:");Scanner input = new Scanner(System.in);for (int i = 0; i < a.length; i++) {if (input.hasNextInt()) {a[i] = input.nextInt();// break;} else {System.out.println("你的输入有误,请重新输入一个整数:");String string = input.next();i--;}}System.out.println(Arrays.toString(a));}
}

经测试,这段代码不会出现任何问题,并且将new scanner 也放到了循环体外边,在用debug调试的过程中我发现 了每次输出的“你的输出有误。。。。”这一句话,像一个孤儿一样没人收留,到了后边的循环貌似是被后来的if (input.hasNextInt())判断为不符合条件还是怎么样?于是又在输出else循环体。所以使用了一个input.next()将这句话装进去,让这个孤儿有了家。所以后边的循环变得正常了。

java中检测输入是否合法的方法相关推荐

  1. 在Java中实现单例模式的有效方法是什么? [关闭]

    在Java中实现单例模式的有效方法是什么? #1楼 我使用Spring框架来管理我的单身人士. 它不会强制类的"单一性"(如果涉及多个类加载器,您将无法真正做到),但是它提供了一种 ...

  2. java某个类避免findbug检查_Findbugs能否在java中检测到捕获RuntimeException?

    你能不能让我知道Findbugs可以在 java中检测到catcing RuntimeException吗? 有效的java建议我们不要捕获RuntimeException. 所以我想知道Findbu ...

  3. java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...

    [多选题]75. 垂直角观测的步骤是( ). [多选题]139. 属于真误差的是( ). [多选题]160. 导线观测数据有( ). [单选题]145.水准测量时,长水准管气泡居中明 ( ). [单选 ...

  4. 在java中如何输入_java如何输入

    ❶ java 如何从键盘上接受输入 public class import { public static void main(String[] args) { System.out.println( ...

  5. Java中如何输入一个字符串

    Java中如何输入一个字符串 首先需导入java.util包中的Scanner类,如图: 接着在main里创建Scanner类对象,记得要把System.in加上这是专门获取用户输入的内容的,它会交给 ...

  6. 【转】Java中获取文件大小的正确方法

    [转]Java中获取文件大小的正确方法 本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明.由于本人不定期会整理相关 ...

  7. Java中图形界面重绘方法

    ** Java中图形界面重绘方法 **   在我们编写图形界面程序的过程中,我们就会发现,当我们将窗体拉伸,缩小(或者最大化最小化)的时候,之前在窗体上画的图形会消失了. 这是为什么呢?   1)原来 ...

  8. java中的五种排序方法_用Java排序的五种有用方法

    java中的五种排序方法 Java排序快速概述: 正常的列表: private static List VEGETABLES = Arrays.asList("apple", &q ...

  9. java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...

    [多选题]一个国家一定时期的商品销售额属于? [单选题]某厂2007年完成产值200万元,2008年计划增长10%,实际完成231万元,超额完成计划? [多选题]我国GDP每增长1%,相当于人均增加收 ...

最新文章

  1. 剑指offer_第8题_跳台阶
  2. Spring起步(一)Building a RESTful Web Service
  3. sklearn做交叉验证
  4. 软件项目第一次Sprint评分表
  5. 计算机系统的发展史、基本组成、工作原理
  6. Py之PyMySQL:Python库之PyMySQL的简介、安装、使用方法之详细攻略
  7. HandlerAdapters
  8. 【今日CS 视觉论文速览】 27 Dec 2018
  9. jQuery事件绑定
  10. “技术驱动创新”正成为企业发展新方向,开发者该如何修炼自己?
  11. linux 实时查看日志 最新最后100行 tail
  12. 自从有了计算机和网络才有信息技术,2015年信息技术会考模拟选择题6(俞同明版)...
  13. c语言程序运行的单词翻译,c语言常见英语词汇带翻译
  14. web——html个人简历
  15. idea导入导出 settings 设置文件
  16. css制作类似优惠券的卡片样式(vue)
  17. 心动的本质是什么_风动,幡动,仁者心动,到底是什么在动
  18. 数据分析 - 9.MECE法(学习笔记)
  19. 合工大现代企业管理期末报告--阿里巴巴企业管理模式探究
  20. system.invalidoperationexception:“connectionstring 属性尚未初始化。问题的解决方式

热门文章

  1. 自动行尾包装行业调研报告 - 市场现状分析与发展前景预测
  2. Top-1 Accuracy和Top-5 Accuracy
  3. 关于SEO的一些介绍
  4. Decoupling Representation and Classifier for Long-Tailed Recognition论文笔记
  5. php表格增加一行数据,““vb中数据库内容输出到excel如何把表格第一行合并添加一个大标题...
  6. RESTART-Axu1
  7. 306-置换策略OPT算法的实现
  8. 一元三次方程重根判别式_一元三次方程的根的探究
  9. 《健身入门学》第二课,肌肉生理生化基础(一)
  10. Mac不能写入U盘的解决方法