TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
- 实例1:
- // 使用Scanner从键盘读数据并计算平均值
- import java.util.*;
-
- class AvgNums {
- public static void main(String args[]) {
- Scanner conin = new Scanner(System.in);
-
- int count = 0;
- double sum = 0.0;
-
- System.out.println("Enter numbers to average.");
-
- // 读取数据并求和,直到遇到一个不是有效的double标记为止.
- while(conin.hasNext()) {
- if(conin.hasNextDouble()) {
- sum += conin.nextDouble();
- count++;
- }
- else {
- String str = conin.next();
- if(str.equals("done")) break;
- else {
- System.out.println("Data format error.");
- return;
- }
- }
- }
-
- System.out.println("Average is " + sum / count);
- }
- }
- 运行结果:
- C:java>java AvgNums
- Enter numbers to average.
- 45
- 4.5
- 23.12
- done
- Average is 24.206666666666667
复制代码
- 实例2
- // 使用Scanner从文件读数据并计算平均值,Scanner读一个源的方法适合读另一个源.
- import java.util.*;
- import java.io.*;
-
- class AvgFile {
- public static void main(String args[])
- throws IOException {
-
- int count = 0;
- double sum = 0.0;
-
- // 创建文件和数据
- FileWriter fout = new FileWriter("test.txt");
- fout.write("2 3.4 5 6 7.4 9.1 10.5 done");
- fout.close();
-
- FileReader fin = new FileReader("Test.txt");
-
- Scanner src = new Scanner(fin);
-
- // 读文件中的数据并求和.
- while(src.hasNext()) {
- if(src.hasNextDouble()) {
- sum += src.nextDouble();
- count++;
- }
- else {
- String str = src.next();
- if(str.equals("done")) break;
- else {
- System.out.println("File format error.");
- return;
- }
- }
- }
-
- fin.close();
- System.out.println("Average is " + sum / count);
- }
- }
- 运行结果:
- C:java>java AvgFile
- Average is 6.2
- 实例3
- // 使用 Scanner从文件中读取各种类型的数据
- import java.util.*;
- import java.io.*;
-
- class ScanMixed {
- public static void main(String args[])
- throws IOException {
-
- int i;
- double d;
- boolean b;
- String str;
-
- // 创建一个供Scanner读取的文件
- FileWriter fout = new FileWriter("test.txt");
- fout.write("Testing Scanner 10 12.2 one true two false");
- fout.close();
-
- FileReader fin = new FileReader("Test.txt");
-
- Scanner src = new Scanner(fin);
-
-
- // 读直到文件尾,读取之前必须检查一下哪种数据类型可得.
- while(src.hasNext()) {
- if(src.hasNextInt()) {
- i = src.nextInt();
- System.out.println("int: " + i);
- }
- else if(src.hasNextDouble()) {
- d = src.nextDouble();
- System.out.println("double: " + d);
- }
- else if(src.hasNextBoolean()) {
- b = src.nextBoolean();
- System.out.println("boolean: " + b);
- }
- else {
- str = src.next();
- System.out.println("String: " + str);
- }
- }
-
- fin.close();
- }
- }
- 运行结果:
- C:java>java ScanMixed
- String: Testing
- String: Scanner
- int: 10
- double: 12.2
- String: one
- boolean: true
- String: two
- boolean: false
- 实例4
- // 设置定界符
- // Scanner基于一组定界符定义标记的开始与结束,默认的定界符是空白字符,用useDelimiter()可改变定界符
- import java.util.*;
- import java.io.*;
-
- class SetDelimiters {
- public static void main(String args[])
- throws IOException {
-
- int count = 0;
- double sum = 0.0;
-
- FileWriter fout = new FileWriter("test.txt");
-
- // 现在用逗号和空格分隔数据.
- fout.write("2, 3.4, 5,6, 7.4, 9.1, 10.5, done");
- fout.close();
-
- FileReader fin = new FileReader("Test.txt");
-
- Scanner src = new Scanner(fin);
-
- // 设置定界符为逗号、零个或多个空白,用正则表达式表示。
- src.useDelimiter(", *");
-
- // Read and sum numbers.
- while(src.hasNext()) {
- if(src.hasNextDouble()) {
- sum += src.nextDouble();
- count++;
- }
- else {
- String str = src.next();
- if(str.equals("done")) break;
- else {
- System.out.println("File format error.");
- return;
- }
- }
- }
-
- fin.close();
- System.out.println("Average is " + sum / count);
- }
- }
- 运行结果:
- C:java>java SetDelimiters
- Average is 6.2
- 实例5
- /* 示范findInLine()方法,该方法在文本的下一行搜索指定的模式。如果找到该模式,匹配标记被甩掉并返回
- *方法签名如下
- *String findInLine(Pattern pattern)
- *String findInLine(String pattern)
- */
-
- import java.util.*;
-
- class FindInLineDemo {
- public static void main(String args[]) {
- String instr = "Name: Tom Age: 28 ID: 77";
-
- Scanner conin = new Scanner(instr);
-
- // 查找age.
- conin.findInLine("Age:");
-
- if(conin.hasNext())
- System.out.println(conin.next());
- else
- System.out.println("Error!");
-
- }
- }
- 运行结果:
- C:java>java FindInLineDemo
- 28
复制代码
源码下载:http://file.javaxxz.com/2014/10/1/210709875.zip |
|