用户交互的Scanner对象
程序员文章站
2022-05-25 21:26:14
...
基本语法
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();
测试:
第二段:使用nextLine()获取用户输入
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 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();
}
上一篇: php中显示数组与对象的实现代码
下一篇: AlertDialog不显示文字
推荐阅读
-
Linux下交互式与非交互式修改用户密码的例子
-
Python实现简单的用户交互方法详解
-
使用MVVM的常见误区(1)在ViewModel中和用户交互
-
Python基础之简单的用户交互程序
-
inquirer.js一个用户与命令行交互的工具详解
-
SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
-
模拟QQ聊天小项目收尾---界面展示服务端与客户端进行信息交互(用到的知识:io,线程,Swing界面,面向对象思想...... )
-
微软感觉如何?或许是最好用的Win10 用户点赞交互体验
-
C#在WinForm中使用WebKit传递js对象实现与网页交互的方法
-
Ajax与用户交互的JSON数据存储格式