Scanner对象
scanner对象
-
通过scanner类来获取用户的输入
-
基本语法
Scanner scanner = new Scanner(System.in)
-
通过Scanner的类next()和nextline()方法来获取用户输入的字符串,在获取之前,要先用hasNext()和hasNextLine来判断是否还有输出的数据.
next()
-
一定都读取到有效字符后才可以结束输入
-
对输入有效字符之前遇到的空白,next()方法会自动将其删除掉
-
只有在输入有效字符后才可以将后面遇到的空白当作分隔符或是结束符使用
-
Next()不能得到带有空格的字符串
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
//创建一个扫描器,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next进行接收:");
//判断用户有没有输出字符串
if(scanner.hasNext()){
//使用next方式接受
String str = scanner.next();//程序会等待数据用户输入完毕
System.out.println("输出的数据为:"+str);
}
//凡是属于IO流类,都需要关闭数据,如果不关闭将会一直占用公共资源
scanner.close();
}
}nextLine()
-
以Enter为结束符,也就是说nextLine()方法返回的是输入Enter之前的所有的字符串
-
可以获得空白
-
-
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//键盘接收数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next进行接收:");
//判断用户是否输入
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输出的数据为:"+str);
}
//凡是属于IO流类,都需要关闭数据,如果不关闭将会一直占用公共资源
scanner.close();
}
}
例题
public class Demo4 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出进行结果
Scanner scanner = new Scanner(System.in);
//和
double sum = 0.0;
//输入多少个数
int i = 0;
//通过循环判断是否还有数字输入,并对循环里进行求和统计
while(scanner.hasNextDouble()){
double d = scanner.nextDouble();
i = i+1;
sum = sum+d;
System.out.println("您输入了第"+i+"个数据,当前结果为sum:"+sum);
}
System.out.println(i+"个数的总和为:"+sum);
System.out.println(i+"个数的平均数为:"+(sum/i));
scanner.close();
/*10
您输入了第1个数据,当前结果为sum:10.0
42
您输入了第2个数据,当前结果为sum:52.0
jn
2个数的总和为:52.0
2个数的平均数为:26.0
*/
}
}

浙公网安备 33010602011771号