zoukankan      html  css  js  c++  java
  • 12-01 Java Scanner类,Scanner类中的nextLine()产生的换行符问题

    分析理解:Scanner sc = new Scanner(System.in);
    package cn.itcast_01;
    
    /*
     * Scanner:用于接收键盘录入数据。
     * 
     * 前面的时候:
     *         A:导包
     *         B:创建对象
     *         C:调用方法
     * 
     * 分析理解:Scanner sc = new Scanner(System.in);
     * System类下有一个静态的字段:
     *         public static final InputStream in; 标准的输入流,对应着键盘录入。
     * 
     *         InputStream is = System.in;
     * 
     * class Demo {
     *         public static final int x = 10;
     *         public static final Student s = new Student();
     * }
     * int y = Demo.x;
     * Student s = Demo.s;
     * 
     * 
     * 构造方法:
     *         Scanner(InputStream source)
     */
    import java.util.Scanner;
    
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            int x = sc.nextInt();
            
            System.out.println("x:" + x);
        }
    }

    Scanner类的hasNextInt()和nextInt()方法

    package cn.itcast_02;
    
    import java.util.Scanner;
    
    /*
     * 基本格式:
     *         public boolean hasNextXxx():判断是否是某种类型的元素
     *         public Xxx nextXxx():获取该元素
     * 
     * 举例:用int类型的方法举例
     *         public boolean hasNextInt()
     *         public int nextInt()
     * 
     * 注意:
     *         InputMismatchException:输入的和你想要的不匹配
     */
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            // 获取数据
            if (sc.hasNextInt()) {
                int x = sc.nextInt();
                System.out.println("x:" + x);
            } else {
                System.out.println("你输入的数据有误");
            }
        }
    }

    Scanner类中的nextLine()产生的换行符问题

    package cn.itcast_03;
    
    import java.util.Scanner;
    
    /*
     * 常用的两个方法:
     *         public int nextInt():获取一个int类型的值
     *         public String nextLine():获取一个String类型的值
     * 
     * 出现问题了:
     *         先获取一个数值,在获取一个字符串,会出现问题。
     *         主要原因:就是那个换行符号的问题。
     * 如何解决呢?
     *         A:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
     *         B:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。
     */
    public class ScannerDemo {
        public static void main(String[] args) {
            // 创建对象
            Scanner sc = new Scanner(System.in);
    
            // 获取两个int类型的值
            // int a = sc.nextInt();
            // int b = sc.nextInt();
            // System.out.println("a:" + a + ",b:" + b);
            // System.out.println("-------------------");
    
            // 获取两个String类型的值
            // String s1 = sc.nextLine();
            // String s2 = sc.nextLine();
            // System.out.println("s1:" + s1 + ",s2:" + s2);
            // System.out.println("-------------------");
    
            // 先获取一个字符串,在获取一个int值
            // String s1 = sc.nextLine();
            // int b = sc.nextInt();
            // System.out.println("s1:" + s1 + ",b:" + b);
            // System.out.println("-------------------");
    
            // 先获取一个int值,在获取一个字符串,这里会出问题
            // int a = sc.nextInt();
            // String s2 = sc.nextLine();
            // System.out.println("a:" + a + ",s2:" + s2);
            // System.out.println("-------------------");
    
            int a = sc.nextInt();
            Scanner sc2 = new Scanner(System.in);
            String s = sc2.nextLine();
            System.out.println("a:" + a + ",s:" + s);
        }
    }
  • 相关阅读:
    leetcode刷题37
    leetcode刷题36
    leetcode刷题38
    leetcode刷题35
    leetcode刷题34
    leetcode刷题33
    记一次Unity使用XNode插件时自动连线问题
    Unity中UGUI图片跟随文本自适应
    Unity中多个物体交换位置
    使用VSCode编译C
  • 原文地址:https://www.cnblogs.com/baiyangyuanzi/p/6855190.html
Copyright © 2011-2022 走看看