一、Scanner用法
1.导入Scanner类
import java.util.Scanner;
2.创建一个Scanner对象用于获取用户输入
public static void main(String[] args) {
//这句话的编写顺序为,先写new Scanner(System.in);,然后将鼠标放在;后,按住Alt+回车,选择第一个,回车。
//再修改参数scanner的名字为s,回车,这句话就完成了。
Scanner scanner = new Scanner(System.in);
//最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。
scanner.close();
}
3.Scanner对象的next()方法(不常用)
1)读取到有效字符后才可以结束输入;
2)自动忽略输入的有效字符之前的空白,有效字符之后的空白会被认为是分隔符或结束符
public static void main(String[] args) {
//创建一个扫描器对象scanner1,用于接收键盘数据
Scanner scanner1 = new Scanner(System.in);
System.out.println("使用next()方式接收:");
//判断scanner1有没有内容,默认为if (scanner1.hasNext()==true)
if (scanner1.hasNext()){
//使用next()接收
String str1 = scanner1.next();
System.out.println("你输入的内容为:"+str1);
}
//最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。
scanner1.close();
}
4.Scanner对象的nextline()方法(常用)
以回车为结束符,可以读取空白。
public static void main(String[] args) {
//创建一个扫描器对象scanner2,用于接收键盘数据
Scanner scanner2 = new Scanner(System.in);
System.out.println("使用nextline()方式接收:");
//判断scanner2有没有内容,默认为if (scanner2.hasNext()==true)
if (scanner2.hasNextLine()){
//使用nextline()接收
String str2 = scanner2.nextLine();
System.out.println("你输入的内容为:"+str2);
}
//最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。
scanner2.close();
}
5.Scanner进阶
1)Scanner还有一些其他方法可以使用,例如hasNextInt、hasNextFloat等
public class Demo08 {
public static void main(String[] args) {
//创建scanner用于从键盘接收数据
Scanner scanner = new Scanner(System.in);
int i=0;
float f = 0.0f;
//从键盘接收数据
System.out.println("请输入数据:");
if (scanner.hasNextInt()){
System.out.println("你输入的是一个整数!");
}else if (scanner.hasNextFloat()){
System.out.println("你输入的是一个小数!");
}else{
System.out.println("未知数!");
}
scanner.close();
}
}
2)小练习:求若干个数的平均值
import java.util.Scanner;
//Scanner进阶2
public class Demo10 {
public static void main(String[] args) {
//输入若干个数字,求和与平均数
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数字,以回车确认,以非数字结束:");
double sum = 0;
int i =0;
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
i++;
sum += x; //也就是sum=sum+x
}
System.out.println("所有数字的和为"+sum);
System.out.println("平均数为"+sum/i);
scanner.close();
}
}