1、Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);   2、reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.

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

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner; public class ScannerDemo {
public static void main(String[] args) throws Exception {
//扫描文件中的数据
//Scanner s=new Scanner(new File("file/text.txt"),"GBK");
//扫描键盘中的数据
Scanner s=new Scanner(System.in);
while(s.hasNextLine()){
String content=s.nextLine();
System.out.println("ECHO:"+content);
}
s.close();
}
}

三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符

使用默认的空格分隔符:
public static void main(String[] args) throws FileNotFoundException {
                Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las");
//                s.useDelimiter(" |,|\\.");
                while (s.hasNext()) {
                        System.out.println(s.next());
                }
        }

123
asdf
sd
45
789
sdf
asdfl,sdf.sdfl,asdf
......asdfkl
las

Process finished with exit code 0

将注释行去掉,使用空格或逗号或点号作为分隔符,输出结果如下:
123
asdf
sd
45
789
sdf
asdfl
sdf
sdfl
asdf

asdfkl

las

Process finished with exit code 0

四、一大堆API函数,实用的没几个

(很多API,注释很让人迷惑,几乎毫无用处,这个类就这样被糟蹋了,启了很不错的名字,实际上做的全是龌龊事)

下面这几个相对实用:

delimiter()
          返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext()
          判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine()
          如果在此扫描器的输入中存在另一行,则返回 true。
next()
          查找并返回来自此扫描器的下一个完整标记。
nextLine()
          此扫描器执行当前行,并返回跳过的输入信息。

五、逐行扫描文件,并逐行输出

看不到价值的扫描过程
public static void main(String[] args) throws FileNotFoundException {
                InputStream in = new FileInputStream(new File("C:\\AutoSubmit.java"));
                Scanner s = new Scanner(in);
                while(s.hasNextLine()){
                        System.out.println(s.nextLine());
                }
        }

package own;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;

import com.verisign.uuid.UUID;

/**
* @author wangpeng
*
*/
public class AutoSubmit {

/**
    * @param args
    * @throws Exception   
    */
  public static void main(String[] args) throws Exception {

...在此省略N行

Process finished with exit code 0

Java 扫描器类 Scanner类的更多相关文章

  1. Java Character & String & Scanner类

    Character类 Character 类用于对单个字符进行操作. Character 类在对象中包装一个基本类型 char 的值 char用法: char ch = 'a'; // Unicode ...

  2. Java常用API(Scanner类)

    Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口 ...

  3. Java基础之Scanner类中next()与nextLine()方法的区别

    java中使用Scanner类实现数据输入十分简单方便,Scanner类中next()与nextLine()都可以实现字符串String的获取,所以我们会纠结二者之间的区别. 其实next()与nex ...

  4. 9. java API使用 - Scanner类

    一.API概述和使用 1. 概述 ​ API(应用程序编程接口).Java API是一本程序员字典,是JDK提供给我们使用的类的说明文档.这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实 ...

  5. Java中使用Scanner类进行键盘的输入详解

    我们在使用Java写代码时,经常会遇到从键盘输入字符串等操作,这时候我们需要用到的是我们的Scanner类来实现获取用户从键盘上的输入操作. Scanner类是一个基于正则表达式的文本扫描器,它可以从 ...

  6. Java 常用对象-Scanner类

    2017-11-02 16:33:11 Scanner类:一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器. Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白 ...

  7. Java中的Scanner类

    java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入.创建Scanner对象的基本语法: Scanner s = new Scanner(System. ...

  8. JAVA IO:Scanner类

    使用Scanner类接收输入数据. JAVA提供了专门的输入数据类,此类可以完成BufferedReader类的功能,也可以方便的对输入数据进行验证,此类存放于JAVA.UTILL包中. 常用方法如下 ...

  9. Java变量和Scanner类

    1.变量的分类1)按数据类型分类   详细说明: 1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)   ① byte范围:-128 ~ ...

  10. [常用类]Scanner 类

    Scanner 类 一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串. 该代码允许用户从System.in读取一个数字: Scanner sc = new Scanner(System.i ...

随机推荐

  1. ASM概述

    ASM的全称是 Automatic Storage Management,ASM 是为存放oracle 数据文件而设计的一个volume manager 和 文件系统 管理的技术. ASM 支持ora ...

  2. 无法建立目录wp-content/uploads/xxxx/xx。有没有上级目录的写权限?解决办法

    首先小七已经搭建了n个wordpress网站之前没遇到过这坑爹的问题,有一天很奇怪无论是本地搭建的wp还是线上搭建的wp网站都出现了同样的问题 本地: 报错原因就是文件权限问题,所以首先就是更改wp- ...

  3. oracle驱动包maven下载失败解决

    oracle是付费的,因此jar包也不是随便让人下的,这就给maven的下载和编译带来了麻烦,因为我们没法从maven仓库直接拿来用.解决办法就是先从别的地方获取jar包,再放到本地仓库里去,这样运行 ...

  4. VMware网络模式介绍

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式). Bridged 模式: 在桥接模式下,VMware虚拟机里的系统就像是  ...

  5. DHCP(四)

    确认阶段:即DHCP服务器确认分配级DHCP客户端IP地址的阶段.某个DHCP服务器在收到DHCP客户端发来的DHCP Request报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地 ...

  6. 使用Spring和Tomcat发布CXF SOAP WebService

    上一节中使用代理工厂JaxWsProxyFactoryBean来发布WebService, 这种方式必须指定运行的端口,如果端口被占用,就会发布失败. cxf的WebService也可利用Tomcat ...

  7. Unity3D 4.3在Windows下打包iOS资源

    想当年,想弄iOS的版本必须弄台mac机器,虽然一开始要弄iOS的时候觉得在mac上开发感觉挺高富帅的,但是做多了之后就觉得在mac上开发各种不方便.现在好了,Unity3D 4.3开始支持在Wind ...

  8. Venom的简单使用

    工具地址:https://github.com/r00t-3xp10it/venom 打开到venom目录,输入./venom.sh 打开程序 按回车键继续 这里有很多的模块,要用哪个模块就输入它的编 ...

  9. java成神之——集合框架之Maps,Hashtable

    集合 Maps HashMap 创建和初始化map 遍历方式 LinkedHashMap WeakHashMap TreeMap 线程锁 Hashtable 结语 集合 Maps HashMap Ma ...

  10. delphi 手电筒

    Self.CameraComponent1.TorchMode := TTorchMode.ModeOn;