用户交互util-Scanner
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner=new Scanner(System.in);
System.out.println("使用next方式接收");
//判断用户有没有输入字符串
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
//凡是属于io流的类如果不关闭会一直占用资源
//要养成好习惯用完就关掉
scanner.close();
使用scanner.next会忽略空格会导致输入的内容缺失所以一般使用nextLine()
Scanner scanner = new Scanner(System.in);
System.out.println();
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println(str);
}
scanner.close();
Scanner进阶使用
可以设置不同的hasNextInt或者hasNextFloat来判断输入的是什么数值来实现更高阶的输入
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("输入的不是小数数据!");
}
scanner.close();
}
练习
输入多个数字,并求其总合与平均数,每输入一个数字用回车确认,每输入非数字来结束输入并输出执行结果。
Scanner scanner = new Scanner(System.in);
//和
double sum=0;
//计算输入了多少个数字
int m= 0;
System.out.println("请输入数字:");
while(scanner.hasNextDouble()){
double x=scanner.nextInt();
m++;
sum = sum+x;
System.out.println("你输入了第"+m+"个数据,当前总合是"+sum);
}
System.out.println("总合"+sum);
System.out.println("平均数"+sum/m);
scanner.close();