📅  最后修改于: 2020-03-24 12:45:24             🧑  作者: Mango
Scanner是java.util包中的一个类,用于获取基本类型(如int,double等)和字符串的输入。这是在Java程序中读取输入的最简单方法,但是如果您想在竞争性编程等时间受限制的情况下使用输入法,这种方法效率不高。
让我们看一下读取各种数据类型的数据的代码片段。
// Java展示Scanner类.
import java.util.Scanner;
public class ScannerDemo1
{
public static void main(String[] args)
{
// 声明对象
Scanner sc = new Scanner(System.in);
// String输入
String name = sc.nextLine();
// Character输入
char gender = sc.next().charAt(0);
// 数据输入
// byte, short和float可使用相似的方法读取
int age = sc.nextInt();
long mobileNo = sc.nextLong();
double cgpa = sc.nextDouble();
//打印输入.
System.out.println("名字: "+name);
System.out.println("性别: "+gender);
System.out.println("年龄: "+age);
System.out.println("电话: "+mobileNo);
System.out.println("温度: "+cgpa);
}
}
输入:
芒果
F
40
9876543210
9.9
输出:
名字: 芒果
性别: F
年龄: 40
电话: 9876543210
温度: 9.9
有时,我们必须检查读取的下一个值是否是某种类型或输入是否已结束(遇到了EOF标记)。
然后,借助hasNextXYZ()函数(其中XYZ是我们感兴趣的类型),我们检查Scanner的输入是否为所需类型。如果Scanner具有该类型的令牌,则该函数返回true,否则返回false。例如,在下面的代码中,我们使用了hasNextInt()。要检查字符串,我们使用hasNextLine()。同样,要检查单个字符,我们使用hasNext().charAt(0)。
让我们看一下代码片段,从控制台读取一些数字并打印其均值。
// Java使用Scanner从控制台读取输入
import java.util.Scanner;
public class ScannerDemo2
{
public static void main(String[] args)
{
// 声明Scanner对象
Scanner sc = new Scanner(System.in);
// 初始化sum和count
int sum = 0, count = 0;
// 检查是否Int为可用
while (sc.hasNextInt())
{
// 读取int
int num = sc.nextInt();
sum += num;
count++;
}
int mean = sum / count;
System.out.println("均值: " + mean);
}
}
输入:
101
223
238
892
99
500
728
输出:
均值: 397