一、基本含义
项目 | 含义 |
---|---|
作用 | 获取用户的输入 |
创建 | Scanner input = new Scanner(System.in) |
判断是否还有输入的数据 | input.hasNext (); input.hasNextLine; |
获取输入信息 | input.next(); input.nextInt(); |
二、next()和nextLine()
2.1 next()
获取字符串特点:
1、有效字符之前的空白等自动丢弃。
2、遇到空白时,停止获取。即自动丢弃空白及其后内容。
3、获取无空格的字符串,因为空格后的内容被丢弃了。
import java.util.scanner; // 导入scanner类。
public class ScannerDemo{
public static void main(String[] args){
Scanner scan = new Scanner(System.in); // 创建scanner对象。
// 创建变量接收控制台输入的数据。
Strinng str = "";
// 判断控制台是否输入数据了。scan.hasNext()
if(scan.hasNext()){
str = scan.next();
System.out.println("这是刚刚从控制台获取的数据:" + str);
}
scan.close(); // 结束接收。
}
}
2.2 nextLine()
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
import java.util.Scanner;
public class ScannerDemon{
public static void main(String[] args){
// 创建Scanner类的实例对象。
Scanner scan = new Scanner(System.in);
// 创建变量接收控制台获取的数据。
String str = "";
// 判断控制台是否输入数据。
if(scan,hasNextLine()){
str = scan.nextLine();
System.out.println("这是刚刚从控制台获取的数据:" + str);
}
scan.close(); // 结束接收。
}
}
三、获取数字时
使用hasNextXxx()和nextXxx()形式,如hasNextInt()和nextInt()
import java.util.Scanner;
public class SacnnerDemon{
public static void main(String[] args){
// 创建Scanner类的实例对象。
Scanner scan = new Scanner(System.in);
// 创建变量接收获取的数据。
int num1 = 0;
float num2 = 0.0f;
String str = "";
if(scan.hasNextInt()){
num1 = scan.nextInt;
System.out.println("输入的数据是整数int型:" + num1);
}else if( scan.hasNextFloat()){
num2 = scan.nextFloat();
System.out.println("输入的数据是浮点float型:" + num2);
}else{
str = scan.nextLine();
System.out.println("输入的数据是非数字型:" + str );
}
// 结束接收。
scan.close();
}
}
四、连续获取数据
使用while循环来进行获取数据
import java.util.scanner; // 导入scanner类。
public class ScannerDemo{
public static void main(String[] args){
// 创建scanner对象。
Scanner scan = new Scanner(System.in);
int tol = 0; // 统计输入了几个数字。
int sum = 0; // 求取输入数字之和。
// 连续获取:while循环。
while(scan.hasNextInt()){
// 创建变量接收控制台输入的数据。
int num = scan.nextInt();
tol++;
sum = sum + num; // 求和。
}
System.out.prinln("输入了" + tol + "个数据,和为:" + sum); // 输出和。
System.out.println("输入数据的平均数取整为:" + (sum / tol)); // 输出平均数取整后的结果。
// 结束接收。
scan.close();
}
}