Scanner 类对象的使用

使用完后 关闭Scanner 不关闭会占用一些资源!!!!


使用next()方式接收

  1. 一定要读取到有效字符后才可以结束输入
  2. 对输入有效字符之前遇到空白(空格)next()会自动将其去掉(有空格,那么空格后面的字符串都会被去掉)
  3. next()不能得到有空格的字符串
  4. 只有输入有效字符串后,如果有效字符后面有空格还有字符,那么空格后面的字符都会被去掉,空格就是分割符、结束符
package com.whs.day03;

import java.util.Scanner;

/**
 * @Author: 阿波罗
 * @Date: 2021/11/23 15:16
 * @oath: 不分白天黑夜的征途 淦!
 * @Version: 1.0.0
 */
public class Demo18 {
    public static void main(String[] args) {
        //OI输入流 Scanner 类
        //创建扫描器对象 用于接受键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
//        判断用户有没有输入字符
        if(scanner.hasNext()){
            String str = scanner.next();//程序会等待用户输入完毕
            System.out.println("输出内容为:"+str);
        }
        scanner.close();//关闭Scanner 不关闭会占用一些资源
    }
}

nextLine()

  1. 就是以Enter(回车)为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符,可以是空白(空格)
package com.whs.day03;

import java.util.Scanner;

/**
 * @Author: 阿波罗
 * @Date: 2021/11/23 15:30
 * @oath: 不分白天黑夜的征途 淦!
 * @Version: 1.0.0
 */
public class Demo19 {
    public static void main(String[] args) {
//        从键盘接收数据
        Scanner scanner = new Scanner(System.in);
//        提示文字
        System.out.println("使用nextLine");
//         判断是否还有输入
        if (scanner.hasNextLine()){
//            //程序会等待用户输入完毕
            String str = scanner.nextLine();
//            输出结果
            System.out.println("输出结果为:"+str);
        }
        scanner.close();//关闭Scanner
    }
}


这个不需要判断

package com.whs.day03;

import java.util.Scanner;

/**
 * @Author: 阿波罗
 * @Date: 2021/11/23 16:15
 * @oath: 不分白天黑夜的征途 淦!
 * @Version: 1.0.0
 */
public class Demo20 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入数据:");
        String str = scanner.nextLine();
        System.out.println("输出数据:"+str);
        scanner.close();
    }
}


我们可以输入多个数字,并求其总和、和平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出结果

package com.whs.day03;

import java.util.Scanner;

/**
 * @Author: 阿波罗
 * @Date: 2021/11/23 22:00
 * @oath: 不分白天黑夜的征途 淦!
 * @Version: 1.0.0
 */
public class Demo22 {
    public static void main(String[] args) {
        //声明 我们可以输入多个数字,并求其总和、和平均数,没输入一个数字用回车确认,通过输入非数字来结束并输出结果
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你要输入的整数个数:");
        //和 sum 为double 类型
        double sum = 0;
        //用于计算输入了多少个数
        int m = 0;

        while (scanner.hasNextDouble()) {// 通过循环判断是否还有输入
            double x = scanner.nextDouble();//x ---> 从键盘得到的数据
            m = m + 1;//m++ 用来计算总共输入的个数
            sum = sum + x;//从键盘上得到的数据进行累加
            System.out.println("你输入的第"+m+"个数字,当前和是:"+sum);
        }

        System.out.println("第" + m + "个数的和为:" + sum);// 所有的个数和为
        System.out.println("第" + m + "个数的平均值是:" + (sum / m));//求平均值 并输出结果

        scanner.close();//关闭 OI流 Scanner 不关闭会占用资源
    }
}

更多推荐