Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。
Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.
Scanner reader=new Scanner(System.in);
然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入
12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文
本行并且回车,该方法得到一个String类型的数据。
下面是一个实例:
import java.util.*;
public class Example{
public static void main(String args[]){
System.out.println("请输入若干个数,每输入一个数用回车确认");
System.out.println("最后输入一个非数字结束输入操作");
Scanner reader=new Scanner(System.in);
double sum=0;
int m=0;
while(reader.hasNextDouble()){
double x=reader.nextDouble();
m=m+1;
sum=sum+x;
}
System.out.printf("%d个数的和为%f\n",m,sum);
System.out.printf("%d个数的平均值是%f\n",m,sum/m);
}
}
运行结果:
C:\java>java Example请输入若干个数,每输入一个数用回车确认最后输入一个非数字结束输入操作34.13445d3个数的和为113.1000003个数的平均值是37.700000
C:\java>另一个例子,读取并分析文本文件:hrinfo.txt,文本文件的内容如下:老赵,28,feb-01,true小竹,22,dec-03,false阿波,21,dec-03,false凯子,25,dec-03,true 程序: import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class readhuman {
private static void readfile(String filename) {
try {
Scanner scanner = new Scanner(new File(filename));
scanner.useDelimiter(System.getProperty("line.separator"));
while (scanner.hasNext()) {
parseline(scanner.next());
}
scanner.close();
}catch (FileNotFoundException e) {
System.out.println(e);
}
}
private static void parseline(String line) {
Scanner linescanner = new Scanner(line);
linescanner.useDelimiter(",");
//可以修改usedelimiter参数以读取不同分隔符分隔的内容
String name = linescanner.next();
int age = linescanner.nextInt();
String idate = linescanner.next();
boolean iscertified = linescanner.nextBoolean();
System.out.println("姓名:"+name+" ,年龄:"+ age+" ,入司时间:"+ idate+" ,验证标记:"+iscertified );
}
public static void main(String[] args) {
if (args.length != 1) {
System.err.println("usage: java readhuman file location");
System.exit(0);
}
readfile(args[0]);
}
}
运行结果:C:\java>java readhuman hrinfo.txt姓名:老赵 ,年龄:28 ,入司时间:feb-01 ,验证标记:true姓名:小竹,年龄:22 ,入司时间:dec-03 ,验证标记:false姓名:阿波 ,年龄:21 ,入司时间:dec-03 ,验证标记:false姓名:凯子,年龄:25 ,入司时间:dec-03 ,验证标记:true
分享到:
相关推荐
`Scanner` 类可以与正则表达式配合使用,通过 `useDelimiter()` 方法可以设置分隔符,这使得我们能够根据自定义规则来分割输入的数据。例如,在上面的示例中,`useDelimiter(",")` 将文本按逗号分割。 4. **状态...
Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序 Scanner类Java SE程序...
下面通过两个示例代码进一步了解`Scanner`类的使用方法: ##### 示例一:从控制台读取数据 ```java import java.util.Scanner; public class Example { public static void main(String[] args) { System.out....
8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.javaScanner类.zip8.java...
Scanner 类的使用方法非常灵活,可以根据需要选择不同的方法来读取输入数据。例如,可以使用 hasNextXXX() 方法来判断是否有下一个输入数据,然后使用 nextXXX() 方法来读取该数据。例如,hasNextDouble() 方法可以...
### Object类和Scanner类 #### 一、Object类详解 **1.1 概述** 在Java语言中,`Object` 类是所有类的基础。它位于类层次结构的顶端,这意味着所有的类,无论显式还是隐式地,都直接或间接地继承自 `Object` 类。...
综合这三个类,我们可以创建一个简单的程序,从`Scanner`接收用户输入,使用`Random`生成随机数,然后将这些值存储在`ArrayList`中。这样,我们就结合了输入、随机性和动态数据结构,展示了Java编程的基础特性。在...
相比于之前的`StringTokenizer`和`Matcher`类,`Scanner`不仅功能更加强大,而且使用起来更加方便灵活。本文将详细介绍`Scanner`类的基本用法以及一些高级技巧。 #### 二、基本概念与构造方法 `Scanner`类位于`java...
在Java编程语言中,`Scanner`类是...在Eclipse环境下,结合这些`Scanner`类的使用方法,可以方便地创建用户交互式Java程序,让代码更加灵活和实用。希望这些内容能对你的学习有所帮助,一起进步,共同探索Java的世界!
#### 二、基本使用方法 1. **创建 Scanner 对象** 创建一个 `Scanner` 对象通常有两种方式: - 从标准输入流 `System.in` 获取输入。 - 从文件中读取数据。 ```java Scanner reader = new Scanner(System.in...
Java 中 Scanner 类 nextLine() 和 next() 的区别和使用方法 Java 中的 Scanner 类提供了多种方法来读取输入数据,其中 nextLine() 和 next() 是两个常用的方法,但它们之间有着重要的区别。 next() 方法 next() ...
`Scanner`类提供了丰富的接收方法来方便程序员进行输入操作。下面我们将详细探讨这些方法及其用法。 1. **创建Scanner对象**: 通常,我们通过传递System.in作为参数来创建一个`Scanner`对象,以便从控制台获取...
2. 创建对象,使用Scanner类的构造方法创建一个Scanner对象 3. 调用方法,使用Scanner对象的成员方法来完成指定功能 例如,我们可以使用Scanner类来读取用户输入的整数: ```java import java.util.Scanner; ...
Java中的`Scanner`类是Java.util包下的一个核心类,主要...通过熟练掌握`Scanner`类的用法,可以提高程序的交互性和易用性。在实际开发中,我们需要根据具体需求选择合适的方法,确保程序能正确、高效地处理输入数据。
综上所述,通过本节内容的学习,我们已经掌握了Scanner类、Random类和ArrayList类的基本使用方法,以及如何通过API文档来学习类的使用步骤。这些都是Java编程中非常实用且基础的知识点,熟练掌握它们将有助于我们...
从Java 5开始引入,Scanner类可以读取来自各种输入源(例如,标准输入流System.in、字符串、文件等)的数据,并能使用正则表达式来解析不同类型的值。 Scanner类提供了许多方法来读取不同类型的数据。其中,next()...
以下是一些关于`Scanner`类的基本用法: 1. **创建Scanner对象**: 创建`Scanner`对象通常与`System.in`关联,以从控制台获取用户输入。例如: ```java import java.util.Scanner; public class Main { ...
一个简单的Scanner类的next()方法例子,最适合小白参考Scanner a = new Scanner(System.in); String v = a.next(); System.out.print("你输入的值是:"+ v); Scanner b = new Scanner(System.in); ...