Java用户交互Scanner

基本语法

Scanner in = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串
  • 在读取前一般使用hasNext()与hasNextLine()方法判断是否还有输入的数据

next()和nextLine()区别:
next():

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入的有效字符前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后才会将其后面输入的空白作为分隔符或结束符
  4. next()不能得到带有空格的字符串

nextLine():

  1. 以Enter为结束符,该方法返回回车之前的所有字符
  2. 可以得到空白
  • 可以简单理解为:next()用于逐个字符输出,以空格结尾;nextLine()用于逐行输出,以Enter结尾
  • 注意点:IO类用完一定要关闭,避免一直占用资源

代码测试

package com.crazygod.scanner;

import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {
        // 创建一个扫描器对象,用于接收键盘数据
        System.out.println("请输入:");
        Scanner in01 = new Scanner(System.in);

        // 判断用户是否输入字符串
        if (in01.hasNext()) {
            // 使用next()方法接收输入的字符串
            String str = in01.next();
            System.out.println("输入的内容为:" + str);
        }

        // 凡是IO流的类用完一定要关闭,否则会一直占用系统资源
        in01.close();

        // 创建一个扫描器对象,用于接收键盘数据
        System.out.println("请输入:");
        Scanner in02 = new Scanner(System.in);

        // 判断用户是否输入字符串
        if (in02.hasNextLine()) {
            // 使用next()方法接收输入的字符串
            String str = in02.nextLine();
            System.out.println("输入的内容为:" + str);
        }

        // 凡是IO流的类用完一定要关闭,否则会一直占用系统资源
        in01.close();
    }
}
package com.crazygod.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        System.out.println("请输入第" + 0 + "个数据:");
        Scanner in = new Scanner(System.in);

        double sum = 0;
        int m = 0;

        while (in.hasNextDouble()) {
            System.out.println("请输入第" + (m + 1) + "个数据:");
            double x = in.nextDouble();
            sum = sum + x;
            m++;
        }

        System.out.println("输入的" + m + "个数的和为:" + sum);

        in.close();
    }
}
posted @ 2020-08-20 22:36  CrazyGod  阅读(91)  评论(0)    收藏  举报