`
san_yun
  • 浏览: 2662221 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

文字扫描工具--java.util.Scanner

    博客分类:
  • java
 
阅读更多

A simple text scanner which can parse primitive types and strings using regular expressions.

A  Scanner   breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various  next   methods.

For example, this code allows a user to read a number from  System.in :

     Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();
 

As another example, this code allows  long   types to be assigned from entries in a file  myNumbers :

      Scanner sc = new Scanner(new File("myNumbers"));
      while (sc.hasNextLong()) {
          long aLong = sc.nextLong();
      }

The scanner can also use delimiters other than whitespace. This example reads several items in from a string:

     String input = "1 fish 2 fish red fish blue fish";
     Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
     System.out.println(s.nextInt());
     System.out.println(s.nextInt());
     System.out.println(s.next());
     System.out.println(s.next());
     s.close(); 

prints the following output:

     1
     2
     red
     blue 

The same output can be generated with this code, which uses a regular expression to parse all four tokens at once:

     String input = "1 fish 2 fish red fish blue fish";
     Scanner s = new Scanner(input);
     s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
     MatchResult result = s.match();
     for (int i=1; i<=result.groupCount(); i++)
         System.out.println(result.group(i));
     s.close(); 

The  default whitespace delimiter   used by a scanner is as recognized by  java.lang.Character .isWhitespace . Thereset   method will reset the value of the scanner's delimiter to the default whitespace delimiter regardless of whether it was previously changed.

A scanning operation may block waiting for input.

The  next   and  hasNext   methods and their primitive-type companion methods (such as  nextInt   and  hasNextInt ) first skip any input that matches the delimiter pattern, and then attempt to return the next token. Both  hasNext   and  next methods may block waiting for further input. Whether a  hasNext   method blocks has no connection to whether or not its associated  next   method will block.

分享到:
评论

相关推荐

    Einleser:java.util.Scanner 的示例

    在Java编程语言中,`java.util.Scanner` 类是用于输入处理的一个重要工具。它提供了一种方便的方法来读取各种数据类型,如整数、浮点数、字符串等,从不同源,包括标准输入(键盘)、文件和系统属性。本教程将深入...

    Java-day-2:1.扫描仪2.控制门

    在Java编程语言中,"扫描仪"通常指的是`java.util.Scanner`类,它是Java标准库的一部分,用于从各种输入源(如系统控制台、文件、字符串或输入流)读取基本类型的数据和字符串。在“Java-day-2:1.扫描仪”这个主题中...

    java二维码生成依赖jar包core-3.3.3.jar

    Java二维码生成是一个常见的任务,特别是在开发移动应用或者需要在Web服务中生成可扫描的二维码时。这个场景中提到的核心依赖是`core-3.3.3.jar`,它属于ZXing(Zebra Crossing)库,这是一个开源的条码读取和生成...

    java Scanner 的用法

    `java.util.Scanner` 是 Java SDK 1.5 版本引入的一个类,用于简化文本扫描任务,它能够解析基本类型(如 `int`, `double`)以及字符串类型的数据。在进行用户交互时,`Scanner` 类提供了一个方便的方法来读取控制台...

    import java.io.BufferedReader.docx

    `Scanner` 类是 `java.util` 包中的一个类,用于简化基本类型和字符串的输入。与 `BufferedReader` 相比,`Scanner` 更加方便和直观。 #### 2. 构造方法 `Scanner` 提供了多个构造方法: - `Scanner(InputStream ...

    在Java中,Scanner类.zip

    Java中的`Scanner`类是Java.util包下的一个核心类,主要负责从各种输入源(如控制台、文件、字符串)读取数据。`Scanner`类提供了丰富的数据类型转换方法,使得程序员可以方便地获取不同类型的输入,如整数、浮点数...

    java端口扫描程序

    Java端口扫描程序是一种利用Java编程语言实现的工具,用于检测特定IP地址上指定范围内端口的开放状态。端口扫描是网络安全评估和系统管理员常用的技术,它可以帮助识别网络服务、漏洞以及潜在的安全风险。 在Java中...

    Java语法:Scanner用法

    `Scanner`类位于`java.util`包中,用于从标准输入(如键盘)或其他文本源获取扫描数据。它是Java 5引入的新特性之一,简化了对输入流的处理过程。 #### 三、基本用法 1. **创建Scanner对象**: ```java import ...

    JAVA高效读取大文件[参考].pdf

    * 使用 java.util.Scanner 类扫描文件的内容,一行一行连续地读取。 * 这种方案将遍历文件中的所有行,允许对每一行进行处理,而不保持对它的引用。 * 内存占用情况:大约消耗了 150MB 内存。 知识点四:解决方案二...

    Java自学视频教程-java读取txt文件方法2.rar

    2. **Scanner**:Scanner类是Java.util包的一部分,主要用于用户输入和文件扫描。尽管它不是为大量数据读取而设计的,但在小型项目或快速原型开发中,Scanner可以提供简洁的语法。以下是如何使用Scanner读取txt文件...

    scanner扫描图片

    在IT行业中,Scanner通常指的是Java中的Scanner类,它属于java.util包,主要用于读取标准输入流、文件输入流以及系统环境变量等。然而,这里提到的"scanner扫描图片"可能是指利用扫描仪设备进行图像捕获,并将其转换...

    猜数字java

    import java.util.Scanner; import java.util.Random; ``` - `java.util.Scanner`:用于接收用户输入。 - `java.util.Random`:用于生成随机数。 ##### 2. 定义类和主方法 ```java public class GuessNumberGame ...

    Scanner:Java扫描器

    在Java编程中,`Scanner`类是`java.util`包下的一个核心类,主要用于从各种输入源(如键盘、文件、网络流等)读取数据。`Scanner`类提供了多种方法来读取不同类型的数据,如整数、浮点数、字符串等。在大三上学期的...

    java的输入语句小结.docx

    `Scanner`类是Java的标准输入处理工具,它提供了多种方法来读取不同类型的数据,如整数、浮点数、字符串等。首先,我们需要导入`java.util.Scanner`包。以下是一个简单的示例: ```java import java.util.Scanner; ...

    day07【Scanner类、Random类、ArrayList类】1

    1. 导包,使用import关键字导入java.util.Scanner包 2. 创建对象,使用Scanner类的构造方法创建一个Scanner对象 3. 调用方法,使用Scanner对象的成员方法来完成指定功能 例如,我们可以使用Scanner类来读取用户输入...

    java Scanner类的使用(csdn)————程序.pdf

    Scanner 类位于 java.util 包中,可以通过创建一个扫描对象来接收键盘输入。 创建扫描对象的基础语法是 `Scanner scanner = new Scanner(System.in);`,其中 `System.in` 代表标准输入流,即从键盘输入。有了扫描...

    万年历——日历

    - `java.util.Calendar` 类:虽然代码中没有直接使用`Calendar`类,但在Java中处理日期和时间时,它是一个重要的工具类,可以创建和操作日期对象。 - `java.util.Date` 类:通常与`Calendar`类一起使用,表示特定...

    scanner扫描器源代码

    首先,Scanner类在Java中是一个标准库类,位于`java.util.Scanner`包下,但在C语言中并没有内置的Scanner类。因此,这里的"scanner扫描器源代码"很可能是一个由开发者自定义实现的C语言功能,用于模拟类似的功能。在...

Global site tag (gtag.js) - Google Analytics