Scannner是一个扫描用户输入的 类,电脑通过Scannner来获取用户的输入。
基本语法
Scanner s = Scanner(System.in);
在Scanner类的next()与nextLine方法来获取输入的字符串,在读取时一般需要hasNext()与hasNextLine()判断是否还有要输入的数据。
next() 一个
hasNext() 还是否有一个
nextLine() 一行
hasNextLine() 还是否有一行
next():
-
必须读取到用户输入的有效数据后才能继续运行或结束。
-
在用户输入的有效数据之前遇到空格,会自动去除空格。
-
如用户输入了有效字符后在其后面输入空格,空格会作为结束符,从而不会显示空格之后的字符。
-
next()不能得到有空格的字符串,因为它只能获取空格之前的字符串。
nextLine()
-
nextLine()是以回车键作为结束符的,在回车之前所有字符都可以被获取。
package weiwei.scanner;
import java.util.Scanner;
public class Dem01 {
//Scanner对象
public static void main(String[] args) {//main方法
Scanner scanner = new Scanner(System.in);//(IO流) 创建扫描器对象,用于接收键盘数据
System.out.println("使用next的方法接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()) {
;//如果用户还有一个输入
// 不用再hasNext()后标记=true,默认都为true
String str = scanner.next();//接收用户的输入,查看用户是否还要输入。之后存储进str内
//str为一个String(字符串)类型的存储器
System.out.println("输入的内容为:" + str);//输出保存在str内的数据
}
scanner.close();//关闭scanner
//凡是属于IO流的类,不关闭会一直占用资源。每次使用完后必须关闭 .close为关闭
}
}
Scanner因为有hasNext和hasNextLine方法,所有不需要if也可以做出判断。
package weiwei.scanner;
//Scanner可以不适用if,也能计算出结果
import java.util.Scanner;
public class Dem02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("你说句话呀:");
String 二狗=scanner.nextLine();
System.out.println("你再说一遍:"+二狗);
scanner.close();
}
}
当配上其他条件时,可做出简单的程序
package weiwei.scanner;
import java.security.cert.X509Certificate;
import java.util.Scanner;//要求:统计用户输入的次数,并计算输入的数值总和与平均值
public class Dem04 {
public static void main(String[] args) {
/*用户可以输入多个数字,求其总和与平均数,每输入一个数字用回车确定,通过输入
非数字来结束输入并执行结果。
*/
Scanner scanner = new Scanner(System.in);//获取用户输入的数值
//定义用户输入多少次数字
double sum = 0;
//计算输入多少个数字(用和数以数字总数,得到平均数)
int m = 0;
System.out.println("请输入数字:");
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while(scanner.hasNextDouble()){//循环语句(获取用户输入的方法)
double x = scanner.nextDouble();/*在循环语句中设立变量x为用户当次输入
的数值,while每循环一次,代表用户完成一次数值输入,x的值也会相应随着用户输入的数值
改变*/
//完成一次输入,m就会自动加1,用来统计用户输入的次数
m=m+1;//可用m++的循环结构。在while内循环一次,就+1
sum=sum+x;//x代表用户的输入,while循环一次,就在原来数值的基础上再相加
System.out.println("你当前为第"+m+"次输入,总数和为:"+sum);
}
System.out.println("你输入的总数为"+sum+"平均值为"+sum/m);
scanner.close();//关闭Scanner
if (sum/m>100){
System.out.println("你的平均数真大");
}else{
System.out.println("你的平均数太小");
}
}
}