Java中Scanner的理解大总结「建议收藏」

Java中Scanner的理解大总结「建议收藏」Scanner类常用的方法:Scnaner(Filefile);Scnaner(Stringfilename);创建一个从特定文件扫描的扫描器hasNext();还有可读取的书库返回truenext();返回下一个标志作为字符串nextLine();使用行分隔符从这个扫描器返回一个行结束nextByte();nextshort();nextInt();nextLong()

大家好,又见面了,我是你们的朋友全栈君。

Scanner类常用的方法:

Scnaner(File file);Scnaner(String filename);创建一个从特定文件扫描的扫描器
hasNext();还有可读取的书库返回true
next();返回下一个标志作为字符串
nextLine();使用行分隔符从这个扫描器返回一个行结束
nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();分别返回一个对应类型的值
useDelimiter(string pattern);设置这个扫描器的分割模式并返回这个扫描器

一,从控制台输入
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可

public class scanner { 
        public static void main(String[] args) { 
                Scanner s = new Scanner(System.in); //从控制台输入
                System.out.println("请输入字符串:"); 
                while (true) { 
                        String line = s.nextLine();                         
                        System.out.println( line); 
                } 
        } 
}

Scanner默认使用空格作为分割符来分隔文本

public static void main(String[] args) throws FileNotFoundException { 
  Scanner s = new Scanner("123 456 789"); 
                while (s.hasNext()) { 
                        System.out.println(s.next()); 
                } 
        }
//输入结果就是
123
456
789        

二,从文件扫描读入
Scanner的构造器支持多种方式,构建Scanner的对象很方便,可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。

Scanner(File file) //构造一个新的Scanner,它生成的值是从指定文件扫描的
Scanner(InputStream source) //构造一个新的 Scanner,它生成的值是从指定的文件的输入流扫描的
Scanner(String filename) //构造一个新的Scanner,它生成的值是从指定文件名扫描的。
文件对象,文件名,文件输入流

public static void main(String[] args) throws FileNotFoundException { 
 InputStream in = new FileInputStream(new File("score.txt")); 
     Scanner s = new Scanner(in);//文件输入流
   //new Scanner("score.txt");new Scanner(new file("score.txt"));都可以
                while(s.hasNextLine()){ 
                        System.out.println(s.nextLine()); 
                } 
        }

三,Scanner是怎么工作的
next();nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();都是令牌读取方法,他们分隔符默认情况下是空格。

next()和nextLine() 的区别:

next()方法读取一个由分割付分割的字符,但是nextLine()是读取一个以行分割符结束的行
例如test.txt文本中有
23 345

Scanner input=new Scanner(new File("test.txt"));
int a=input.next();
String line=input.nextLine();//要读到行分隔符

的结果是a的值是34 ,line的值是”,”3,’4’,’5’
再如如果从键盘输入23,然后按回车键,接着输入345,然后在按钮回车键,执行

Scanner input=new Scanner(new File("test.txt"));
int a=input.next();
String line=input.nextLine();//要读到行分隔符

之后的结果是a的值是23,但是line的却是空的字符串,因为nextInt()读取到23,然后在分割付处停止,这里的分隔符是行分隔符,就是回车键,所以nextLine还没有到数据就结束了,为空字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162073.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月20日 下午4:36
下一篇 2022年7月20日 下午4:46


相关推荐

  • 配置DNAT发布内网服务器

    配置DNAT发布内网服务器3 配置 DNAT 发布内网服务器 问题本案例要求熟悉 DNAT 策略的典型应用场景 完成以下任务 1 通过 DNAT 策略发布内网的 Web 服务器 2 通过 DNAT 策略发布内网的 SSH 服务器 3 通过 DNAT 策略发布内网的 FTP 服务器 方案沿用练习二 采用三台 RHEL6 虚拟机 svr5 gw1 pc120 如图 3 所示 其中 虚拟机 svr5 作为局域网络的测试机 接入 NAT 网络 virbr0 虚拟机 p

    2026年3月17日
    3
  • mysql经典面试题及答案_常见的SQL面试题

    mysql经典面试题及答案_常见的SQL面试题1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;1.主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;2.从:io线程——在使用startslave之后,负责从master上拉取binlog内容,放进自己的relaylog中;3.从:sql执行线程——执行relaylog中的语句;详解:mys…

    2022年8月27日
    5
  • SAP ABAP计划 SY-REPID与SY-CPROG差异

    SAP ABAP计划 SY-REPID与SY-CPROG差异

    2021年12月30日
    46
  • IDEA 非maven项目打jar包(包含第三方依赖包)

    IDEA 非maven项目打jar包(包含第三方依赖包)**IDEA非maven项目打jar包**普通java项目打JAR包方式(包含第三方依赖包):①在保证程序能运行情况下:②③④***最后就生成JAR包了在相应文件夹下运行控制台命令java-jar.jar就可以运行了…

    2022年6月19日
    75
  • ILA(集成逻辑分析器)的使用

    ILA(集成逻辑分析器)的使用本文内容学习自正点原子 ZYNQ 领航者 FPGA 视频 P71 ILA 介绍 nbsp ILA IntegratedLo 集成逻辑分析器 即 Vivado 的在线逻辑分析仪 其借用了传统逻辑分析仪的理念以及大部分的功能 并利用 FPGA 中的逻辑资源 将这些功能植入到 FPGA 的设计当中 ILA 是用 IP 核的形式实现的

    2026年3月19日
    2
  • 史上超强最常用SQL语句大全

    史上超强最常用SQL语句大全史上超强最常用SQL语句大全,)1)DDL–数据定义语言用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter等2)DML–数据操作语言用来对数据库中表的数据进行增删改。关键字:insert,delete,update等3)DQL–数据查询语言用来查询数据库中表的记录(数据)。关键字:selewhere等4)DCL–数据控制语言用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT,REVOKE等

    2022年6月14日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号