java常用类之Scanner

常见对象(Scanner的概述和方法介绍)
* A:Scanner的概述
* B:Scanner的构造方法原理
  * Scanner(InputStream source)
  * System类下有一个静态的字段:
    * public static final InputStream in; 标准的输入流,对应着键盘录入。

* C:一般方法
  * hasNextXxx() 判断是否还有下一个输入项,其中Xxx可以是Int,Double等。

    如果需要判断是否包含下一个字符串,则可以省略Xxx
  * nextXxx() 获取下一个输入项。Xxx的含义和上个方法中的Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符

常见对象(Scanner获取数据出现的小问题及解决方案)
  * A:两个常用的方法:
    * public int nextInt():获取一个int类型的值
    * public String nextLine():获取一个String类型的值
  * B:案例演示
    * a:先演示获取多个int值,多个String值的情况
    * b:再演示先获取int值,然后获取String值出现问题
  * c:问题解决方案
    * 第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
    * 第二种:把所有的数据都先按照字符串获取,然后要什么,就对应的转换为什么。(后续)

代码:

package org.ks.常见对象.Scanner;

import java.util.Scanner;

public class Demo_Scanner {
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);          //创建键盘录入对象,使用的构造方法是:Scanner(InputStream source)
        if(sc.hasNextInt())
        {
            int i = sc.nextInt();        //从键盘录入一个整数
            System.out.println(i);
        }else {
            System.out.println("输入类型错误");
        }
        
    }
}
package org.ks.常见对象.Scanner;

import java.util.Scanner;

/*     
*常见对象(Scanner获取数据出现的小问题及解决方案)(掌握)
* A:两个常用的方法:
    * public int nextInt():获取一个int类型的值
    * public String nextLine():获取一个String类型的值
* B:案例演示
    * a:先演示获取多个int值,多个String值的情况
    * b:再演示先获取int值,然后获取String值出现问题
    * c:问题解决方案
        * 第一种:先获取一个数值后,在创建一个新的键盘录入对象获取字符串。
        * 第二种:把所有的数据都先按照字符串获取,然后要什么,你就对应的转换为什么。(后面讲)
*/

public class Demo2_Scanner {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        /*
        System.out.println("请输入第一个整数:");
        int i = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int j = sc.nextInt();
        System.out.println("i = " + i + "j = " + j);
        
        System.out.println("请输入第一个字符串:");
        String line1 = sc.nextLine();
        System.out.println("请输入第二个字符串:");
        String line2 = sc.nextLine();
        System.out.println("line1 = " + line1 + "line2 = " + line2);
        */
        
        
        /*
         * nextInt()是键盘录入整数的方法,当录入10的时候
         * 其实在键盘上录入的是    10  和   \r\t ,nextInt()方法只获取了10就结束了;
         * nextLine()是键盘录入字符串的方法,可以接收任意类型,但只要遇到    \r\n就结束
         */
        /*
        System.out.println("请输入一个整数:");
        int i = sc.nextInt();
        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();
        System.out.println("i = " + i + "," + "line = " + line);         // i = 10,line = 
        */
        
        
        /*
         * 解决方法:
         * 1.创建两次对象,但是浪费空间
         * 2.键盘录入的都是字符串,都用nextLine()方法,后面学习将整数字符串转成整数的方法
         */
        int i = sc.nextInt();
        Scanner sc1 = new Scanner(System.in);
        String Line = sc1.nextLine();
        System.out.println(i);
        System.out.println(Line);
    }

}

猜你喜欢

转载自www.cnblogs.com/kesheng/p/12521458.html