当前位置: 首页 > ai >正文

Scanner对象

文章目录

    • Scanner对象
      • 基本语法
      • 使用next()接受
      • 使用nextLine()接受
      • 小案例
      • 总结

Scanner对象

java给我们提供了一个工具类,我们可以获取用户的输入

java.util.Scanner是java5的新特性,我们可以通过Scanner类来获取用户的输入

基本语法

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据

使用next()接受

package com.baoli.Scanner;
import java.util.Scanner;
public class Demo01 {public static void main(String[] args) {//  创建一个扫描器对象,用于接受键盘数据Scanner scanner = new Scanner(System.in);//  判断用户有没有输入字符串if(scanner.hasNext()) {//  使用next方式接受String str = scanner.next(); // 程序会等待用户输入完毕System.out.println("输出的内容为:"+str);}//  凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉scanner.close();}
}输入:hello word
输出的内容为:hello

使用nextLine()接受

package com.baoli.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()) {String str = scanner.nextLine();System.out.println("输出的内容为:"+str);}scanner.close();}
}使用nextLine方式接受
hello world
输出的内容为:hello world

小案例

package com.baoli.Scanner;
import java.util.Scanner;
public class Demo04 {public static void main(String[] args) {
//        案例:我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入,并输入结果Scanner scanner = new Scanner(System.in);
//      定义变量double sum = 0;int count = 0;
//      通过循环判断是否还有输入,并在里面对每一次进行求和统计while (scanner.hasNextDouble()) {sum += scanner.nextDouble();count++;}System.out.println(count + "个数的总和为:" + sum);System.out.println(count + "个数的平均值为:"+ (sum/count));}
}

总结

next():

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

nextLine()

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
    分隔符或者结束符
  2. next()不能得到带有空格的字符串

nextLine()

  1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白
http://www.xdnf.cn/news/6908.html

相关文章:

  • 微机电子拉伸试验机
  • Vue-事件修饰符
  • 56.合并区间(java)
  • 【springboot】HttpClient快速入门
  • 数组名既可作为指针也可作为变量名
  • 2025春训第二十场
  • vector(c++)
  • Mysql触发器(附案例)
  • day016-系统负载压力测试-磁盘管理
  • 应用层自定义协议与序列化
  • 毛泽东(井冈山)词三篇
  • 英语学习5.17
  • 电子电路:到底该怎么理解电容器的“通交流阻直流”?
  • 高频面试题(含笔试高频算法整理)基本总结回顾120
  • Conda 完全指南:从环境管理到工具集成
  • 飞帆控件 post or get it when it has get
  • FastMCP:为大语言模型构建强大的上下文和工具服务
  • C++类与对象--1 特性一:封装
  • vue.js 更新数据时,出现数据更新,界面没有更新的情况【普通对象,不包含数组】
  • NBA足球赛事直播源码体育直播M33模板赛事源码
  • B站锁定三倍速(自用)
  • Dubbo:Docker部署Zookeeper、Dubbo Admin的详细教程和SpringBoot整合Dubbo的实战与演练
  • gem5-gpu教程 第十章 关于topology 的Mesh network
  • USB基础知识
  • Selenium测试框架快速搭建
  • 多模态学习( 二 )——Token与Embedding的区别:从文本到向量空间的旅程
  • 手动实现 Transformer 模型
  • QT+EtherCAT 主站协议库—SOEM主站
  • 什么是差分传输?
  • 免费代理IP服务有哪些隐患?如何安全使用?