本文共 1924 字,大约阅读时间需要 6 分钟。
Scanner sc = new Scanner(System.in)
Scanner中通过next()
或者nextLine()
来获取用户输入的字符串,在读取之前还需要通过hasNext()
和hasNextLine()
来判断用户是否有输入的情况
请看这两段代码:
第一段:使用next()获取用户输入
//获取键盘输入 Scanner scanner = new Scanner(System.in); System.out.println("next()方法输入:"); //判断用户是否输入 if(scanner.hasNext()){ String str = scanner.next(); System.out.println("输入的内容为:" + str); } //关闭流 scanner.close();
测试:
Scanner sc = new Scanner(System.in); System.out.println("nextLine()输入:"); if(sc.hasNextLine()){ String str = sc.nextLine(); System.out.println(str); } sc.close();
测试:
next()
和nextLine()
的区别 next()
不可以获取到空白,但是可以忽视开头的空白,而nextLine()
可以显示出空白
Scanner类中定义了很多方法,比如用户输入时可以是不同类型的数字,Scanner都可以检测出来:
//获取键盘输入 Scanner scanner = new Scanner(System.in); int i = 0; float f = 0.0f; System.out.println("输入整数:"); //判断是否是整数 if(scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("整数数据:" + i); } else { System.out.println("输入的不是整数!"); } System.out.println("请输入小数:"); //判断是否是小数 if(scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("小数:" + f); } else{ System.out.println("输入的不是小数!"); }
练习:输入多个数字,求总和和平均数,没输入一个数字就回车进行确认,若输出的不是数字则得出结果。
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double sum = 0; //当前第几个数 int m = 0; //不满足条件直接跳出循环 while (scanner.hasNextDouble()){ //获得输入的值 double nextDouble = scanner.nextDouble(); m++; sum = sum + nextDouble; System.out.println("你输入了" + m + "个数字,当前结果sum=" + sum); } System.out.println(m + "个数字和为:" + sum); System.out.println(m + "个数的平均值为:" + sum/m); scanner.close(); }
转载地址:http://erv.baihongyu.com/