import java.util.Scanner;

/**
 * @author WanJl
 * @version 1.0
 * @title Demo07
 * @description Scanner键盘输入
 * @create 2026/7/16
 */
public class Demo07 {
    /*
        Java中实现键盘输入的标准方式就是 Scanner 类
        它是 java.util 包下的一个工具类，可以读取我们在控制台中输入的数据
        操作步骤：
            1、导包 在代码第1行，输入 import java.util.Scanner （idea可以自动导包）
            2、在main方法中创建 Scanner 对象
                格式：  Scanner sc=new Scanner(System.in);
            3、调用sc对象的方法：
                |-整数byte       sc.nextByte();
                |-整数short      sc.nextShort();
                |-整数int        sc.nextInt();
                |-整数long       sc.nextLong();
                |-小数float      sc.nextFloat();
                |-小数double     sc.nextDouble();
                |-字符           sc.next().charAt(0); //暂时不用，后续会讲charAt()方法
                |-单个字符串     sc.next();  //是以空格和 换行符 为结束符
                |-整行字符串     sc.nextLine();  //是换行符位为结束符
                |-布尔值boolean  sc.nextBoolean();
           4、关闭Scanner 释放资源
                sc.close();
     */
    public static void main(String[] args) {
        //创建Scanner对象，传入参数 标准系统输入 System.in
        //System.in 属于系统标准输入流
        Scanner sc=new Scanner(System.in);
        //调用输入整数的方法：nextInt();
        //int in = sc.nextInt();
        //System.out.println("用户输入了："+in);
        //System.out.println("请输入第1个整数：");
        //int a=sc.nextInt();
        //System.out.println("请输入第2个整数：");
        //int b=sc.nextInt();
        //System.out.println("a+b="+(a+b));
        //System.out.println("请输入一个字符串：");
        //String s = sc.next();
        //System.out.println(s);




        /*
            Scanner有陷阱：
            nextInt()后面使用nextLine()的问题

            int a=sc.nextInt();
            String s = sc.nextLine();

            System.out.println(a);
            System.out.println(s);

            //直接读取到了一个空的字符串，然后就结束了，
            因为nextLine() 以换行符未结束，nextInt()读取完数字之后，
            换行符还停留在缓冲区中，紧接着调用了nextLine()，它遇到了换行符，就直接结束了


            注意：在控制台中使用键盘输入的值，必须要符合sc扫描接收的类型。否则会出现异常，导致程序结束
         */
        //解决方案：
        int a=sc.nextInt();
        sc.nextLine();  //先调用一次nextLine() 吃掉换行符。
        String s = sc.nextLine();

        System.out.println(a);
        System.out.println(s);
        //4、关闭Scanner 释放资源
        sc.close();
    }
}
