Java用户交互Scanner

本文介绍Java中Scanner类的基本用法,包括如何使用next()和nextLine()方法获取用户输入,并对比这两种方法的区别。此外,还介绍了如何利用Scanner类进行不同类型数据的输入判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java用户交互Scanner

Scanner对象

  • 可以通过java.util.Scanner提供的Scanner类来获取用户的输入,实现程序与人的交互
  • 基本语法:Scanner scanner =new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前可以用hasNext()和hasNextLine()判断是否还有输入的数据
package process;
import java.util.Scanner;

public class Scanner01 {
    public static void main(String[] args) {
        //创建一个scanner对象,用于接收输入信息
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入信息:");
        //使用Next()判断是否有输入字符串
        if(scanner.hasNext()){
            //使用next()方式接收输入信息
            String str=scanner.next();//程序会等待用户输入
            System.out.println("输入的信息为:"+str);
        }
        //关闭IO流的类:Scanner类,不然会一直占用内存
        scanner.close();
    }
}

//输出结果为:
请输入信息:
学习Java好快乐   呀呀呀!
输入的信息为:学习Java好快乐  //“呀呀呀!”没有输出,因为next()方法以空格作为了结束符

Process finished with exit code 0

package process;
import java.util.Scanner;

public class Scanner02 {
    public static void main(String[] args) {
        //创建一个scanner对象,用于接收输入信息
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入信息:");
        //使用NextLine()判断是否输入字符串
        if(scanner.hasNextLine()){
            //nextLine()接收输入的信息
            String str=scanner.nextLine();
            System.out.println("输入信息为:"+str);
        }
        scanner.close();
    }
}
//结果为:
请输入信息:
学习Java好快乐  呀呀呀!
输入信息为:学习Java好快乐  呀呀呀! //“呀呀呀!”输出了,因为nextLine()方法以回车键作为了结束符

Process finished with exit code 0

next()和nextLine()比较

  • next()一定需要读取到有效字符后才可以结束输入
  • next()将有效字符后面输入的空格作为结束符
  • next()不能得到带有空格符的字符串(空格后面的不能输出)
  • nextLine()以Enter为结束符,可以获得空白

拓展练习

package process;
import java.util.Scanner;

public class Scanner03 {
    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();
    }
}
//结果为:
请输入信息:
学习Java好快乐  呀呀呀!
输入的信息为:学习Java好快乐  呀呀呀!

Process finished with exit code 0
package process;
import java.util.Scanner;

public class Scanner04 {
    public static void main(String[] args) {
        int i=0;
        float f=0.0f;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入信息:");
        //hasNextInt()判断是否输入的是整型
        if(scanner.hasNextInt()){
            i=scanner.nextInt();
            System.out.println("整数:"+i);
        }else {
            System.out.println("输入的数据不为整型!");
        }
        //hasNextFloat()判断是否输入的是小数型
        if(scanner.hasNextFloat()){
            f=scanner.nextFloat();
            System.out.println("小数:"+f);
        }else {
            System.out.println("输入的数据不为小数!");
        }
    }
}
package process;
import java.util.Scanner;

public class Scanner05 {
    public static void main(String[] args) {
        //求输入的多个数字的总和和平均数,以数据类型错误作为结束条件
        Scanner scanner=new Scanner(System.in);
        //定义总和sum
        double sum=0;
        //定义输入数据的个数
        int i=0;
        System.out.println("请输入数据:");
        //判断输入的数据类型是否为Double
        while (scanner.hasNextDouble()){
            //定义x作为输入的数据
            double x=scanner.nextDouble();
            i++;//输入次数自增
            sum=sum+x;//求和
        }
        System.out.println("输入数字的总和sum为:"+sum);
        System.out.println("输入数字的平均数为:"+sum/i);//平均数
        scanner.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值