通过scanner与用户交互

用户交互scanner

代码,使用Line

package com.scanner;

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args){

        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");

        //判断用户有没有输入字符串
        if(scanner.hasNext() == true){
            String str = scanner.next();
            System.out.println("输出的内容为:" + str);
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉
        scanner.close();

    }
}

结果

image

代码,使用nextLine

package com.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args){

        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:");

        //判断用户有没有输入字符串
        if(scanner.hasNextLine() == true){
            String str = scanner.nextLine();
            System.out.println("输出的内容为:" + str);
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉
        scanner.close();

    }
}

结果

image

比较

next()不能得到带有空格的字符,但nextLine()可以,其以Enter为结束符,因此可以获得空白。

代码,简单化版本

package com.scanner;

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args){

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

        String str = scanner.nextLine();
        
        System.out.println("输出的内容为:" + str);

        //凡是属于IO流的类如果不关闭会一直占用资源,要养成习惯用完就关掉
        scanner.close();

    }
}

scanner进阶

package com.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);

        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字结束输入并输出执行结果
        //和
        double sum = 0;

        //计算输入了多少数字
        int n = 0;

        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            n++;
            sum = sum + x;
        }

        System.out.println(n + "个数的和为" + sum);
        System.out.println(n + "个数的平均值为" + sum/n);
    }
}
posted @ 2024-09-11 11:25  lo星空物语ol  阅读(12)  评论(0)    收藏  举报