Java之Scanner类
参考链接:https://www.bilibili.com/video/BV12J41137hu?p=33
- 基本结构
两种方法,Scanner.Next()以及Scanner.NextLine():
public class TestScanner {
public static void main(String[] args) {
//新建Scanner对象
Scanner scanner = new Scanner(System.in);
//用户输出,有两种用法
//1.Scanner.next,搭配Scanner.hasNext();
//2.Scanner.nextLine,搭配Scanner.hasNextLine();
//方法1
System.out.println("请输入:");
if(scanner.hasNext())
{
System.out.println("输入的是"+scanner.next());
}
//此方法是以空格为结束符的,所以无法接收到含有空格的字符串,而且如果字符串开始前有空格,则空格省略
//方法2
System.out.println("请输入:");
if(scanner.hasNextLine())
{
System.out.println("输入的是"+scanner.nextLine());
}
//此方法是以Enter为结束符的,所以可以接收到含有空格的字符串,而且如果字符串开始前有空格,则空格不会省略
//关闭Scanner对象,要有关闭IO流的好习惯
scanner.close();
}
}
result:
请输入:
23 32 3213
输入的是23
请输入:
输入的是 32 3213
- 扩展
例如Scanner.nextInt()...可以给定具体接受的数据类型
public class TestScanner2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入:");
//输入int类型
if(scanner.hasNextInt()) {
System.out.println("输入的是int型 "+scanner.nextInt());
}
//若输出的是float型
if(scanner.hasNextFloat()) {
System.out.println("输入的是float型 "+scanner.nextFloat());
}
scanner.close();
}
}
result1:
请输入:
12
输入的是int型 12
12
输入的是float型 12.0
result2:
请输入:
12.1
输入的是float型 12.1
- 一个简单应用例子
利用连续输入实现一个实例,求多个数的平均数。要求输入多个数,以非数的字符结束输入
public class TestScnaner3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double score = 0.0;
int number = 0;
System.out.println("请输入:");
while(scanner.hasNextDouble()) { //nextDouble()就不是以空格为终止符,而是以非double的输入为终止符
score+=scanner.nextDouble();
number++;
}
score/=number;
System.out.println("平均数是 "+score);
scanner.close();
}
}
请输入:
1 2 3 4 5 6 7 8 9 10 s
平均数是 5.5
浙公网安备 33010602011771号