Scanner用法

一、基本用法

  • 接收键盘数据的方法:next()、nextLine()

  • 判断是否还有输入的数据的方法:hasNext()、hasNextLine()

示例
  • 示例1-- next()与hasNext()
import java.util.Scanner;
public class Demo01{
    public static void main(String[] args) {
        
        //定义扫描器对象,用于接收键盘数据
        Scanner sc = new Scanner(System.in);
        
        System.out.println("next接收数据:");
        if(sc.hasNext()){
            String str = sc.next();
            System.out.println("用户输入的内容为:"+str);
        }
        //凡是属于IO流的类如果不关闭会一直占用资源
        sc.close();
    }
}

测试结果:

next


  • 示例2–nextLine()与hasNextLine()
import java.util.Scanner;
public class Demo02{
    public static void main(String[] args) {
        
		//定义扫描器对象,用于接收键盘数据
        Scanner sc = new Scanner(System.in);
        
        System.out.println("nextLine接收数据:");
 		if(sc.hasNextLine()){
            String str = sc.nextLine();
            System.out.println("输入的内容为:"+str);
        }
       //关闭IO流
        sc.close();
    }
}

测试结果:

nextLine

结果分析

next():

  • 只有输入有效字符后才将其后面输入的空白作为结束符(若只输入空格,输入不会结束)

  • 对于输入有效字符之前的空白,next()方法会自动去掉。

    (读取字符串" hello world"与"hello world"的结果是一样的,都只读取了"hello")

  • 以空格为结束符

nextLine():

  • 以回车为结束符,–nextLine()方法返回的是输入回车之前的所有字符
  • 可以获得空格

二、判断用户输入类型

nextInt()、nextFloat()、nextDouble()…

hasNextInt()、hasNextFloat、hasNextDouble()…

示例
import java.util.Scanner;
public class Demo03{
    public static void main(String[] args) {
        
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入数字:");
        
        if(sc.hasNextInt()){
            int num = sc.nextInt();
            System.out.println("输入的整数为:"+num);
        }
        else if(sc.hasNextFloat()){
            Float num = sc.nextFloat();
            System.out.println("输入的为浮点数:"+num);
        }
        else {
            System.out.println("不是整数也不是浮点数");
        }
        
        sc.close();
    }
}

测试结果:

  • 输入整数时:

scanner-judge-01

  • 输入浮点数时:

judge02

  • 其他:

scanner-judge-03

注:

判断输入类型的函数还有很多,具体可查阅api文档

api文档链接:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值