Java学习:Scanner

Scanner

通过Scanner类获取用户输入

Scanner s = new Scanner(System.in);

通过next()nextLine()获取输入的字符,读取前使用hasNext()hasNextLine()判断是否还有输入的数据。

next():

  1. 要读取到有效字符后才能结束输入
  2. 对输入有效字符之前遇到的空白,next()会自动去除
  3. 输入有效字符后,会将输入后的空白作为分隔符或结束符
  4. next()不能得到带空格的字符串
public static void main(String[] args) {
    //创建一个扫描器对象,用于接收键盘数据
    Scanner scanner = new Scanner(System.in);
    System.out.println("next接收");

    //判断用户有没有输入字符串
    if (scanner.hasNext()){
        //使用next方式接收,仅能接收一个字符
        String str = scanner.next();
        System.out.println("输出内容"+str);
}
//使用后关闭scanner,节省资源
scanner.close();

next Line():

  1. 以Enter为结束符,返回输入回车前的所有字符
  2. 可以获得空白
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    System.out.println("nextLine接收");
    if(scanner.hasNextLine()){
        //使用nextLine接收
        String str = scanner.nextLine();
        System.out.println("输出"+str);
}
scanner.close();

使用

Scanner scanner = new Scanner(System.in);
System.out.println("nextLine接收");
String str = scanner.nextLine();
System.out.println("输出"+str);
scanner.close();

整数和小数输入

  • 整数输入

    • 判断输入是否为整数:scanner.hasNextInt

    • 扫描整数:scanner.nextInt()

  • 小数输入

    • 判断输入是否为浮点数:scanner.hasNextFloat
    • 扫描浮点数:scanner.nextFloat()

实现案例

Scanner scanner = new Scanner(System.in);

//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("输入整数");
//判断输入的是不是整数
if(scanner.hasNextInt()){
    i = scanner.nextInt();
    System.out.println(i);
}else{
    System.out.println("输入不是整数");
}

System.out.println("输入小数");
//判断输入的是不是小数
if(scanner.hasNextFloat()){
    f = scanner.nextFloat();
    System.out.println(f);
}else{
    System.out.println("输入不是小数");
}

当第一次输入不为整数时,跳过了if的执行语句,输入内容被小数的读取器读取,跳过输入过程直接进行判定。(个人理解,有不对的地方希望可以指出,谢谢)

输入和输出结果:

输入整数
1.0	//输入
输入不是整数 //输出结果
输入小数	
1.0	//跳过了第二次的读取

实例

连续输入n个数字,求总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果

Scanner scanner = new Scanner(System.in);
//定义和、输入数字总数
double sum = 0;
int n =0;

//while当括号力的内容为false时停止执行
while(scanner.hasNextDouble()){
    double x = scanner.nextDouble();
    sum = sum + x;
    n++;
}
System.out.println(n+"个数字的和为:"+sum);
System.out.println("平均数为:"+(sum/n));

scanner.close();

学自狂神说JAVA

posted @   chachan53  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· Windows 提权-UAC 绕过
点击右上角即可分享
微信分享提示