Scanner类用法
来源:互联网 发布:淘宝代付可以看出来吗 编辑:程序博客网 时间:2024/05/16 15:29
实例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 AvgNumsEnter numbers to average.454.523.12doneAverage 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 AvgFileAverage 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 ScanMixedString: TestingString: Scannerint: 10double: 12.2String: oneboolean: trueString: twoboolean: 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 SetDelimitersAverage 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 FindInLineDemo28
- Scanner 类 useDelimiter("")用法
- Scanner类用法
- Scanner 类的用法
- Scanner类的用法
- Scanner 类 useDelimiter("")用法
- Scanner类的用法
- Scanner类的用法
- Scanner类用法
- 【66】Scanner类用法详解
- scanner 用法
- Scanner用法
- Scanner用法
- Scanner用法
- Java中Scanner类的用法
- Java中Scanner类的用法
- Java中Scanner类的用法
- Java中Scanner类的用法
- java中Scanner类的用法
- VMware NAT 端口映射配置
- 如何修改镜像操作系统的SID
- 优化PHP代码的40条建议
- 论FTP的主动被动和相关的防火墙设置
- 国内主流免费CMS系统介绍
- Scanner类用法
- ORACLE JOB INTERVAL参数设置
- JFreeChart多个示例
- 循序渐进学习oracle
- 每个初学者都应该搞懂的问题!
- Socket粘包问题
- 2年大型门户SEO操作经验分享
- 重载 重写 覆盖
- 类图图解重写和重载的区别