java中Scanner
来源:互联网 发布:.cn域名可以过户吗? 编辑:程序博客网 时间:2024/06/06 09:40
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,对文本进行操作。
一、扫描控制台输入
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。
先上代码如下:
import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class Main { public static void main(String[] args) { //从控制台获取字符串 //Scanner scanner = new Scanner(System.in); /*System.out.println("请输入字符串:"); while(true){ String line = scanner.nextLine(); if(line.equals("exit")) break; System.out.println(">>"+line); }*/ //使用分隔符 //Scanner scanner = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las"); /* while(scanner.hasNext()){ scanner.useDelimiter(" |,|\\."); System.out.println(scanner.next()); }*/ //测试文本输入 Scanner scanner = null; try { scanner = new Scanner(new File("D:\\Workspaces\\Java\\algorithm\\Offer_7.java")); } catch (FileNotFoundException e) { e.printStackTrace(); } while(scanner.hasNextLine()){ System.out.println(scanner.nextLine()); } scanner.close(); }}
运行结果如下:
请输入字符串: aaa>>234 string>>string 567 >>567 exit
二、Scanner的构造器支持多种方式,构建Scanner的对象很方便。
可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。
三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符
四、一大堆API函数,相对实用的有如下几个
五、逐行扫描文件,并逐行输出
文本文件如下:
老赵,28,feb-01,true小竹,22,dec-03,false阿波,21,dec-03,false凯子,25,dec-03,true
import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class Main { 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]); }}
1 0
- java中scanner用法
- Java中Scanner对象
- JAVA 中SCANNER用法
- java中Scanner
- java中Scanner
- java中Scanner知识
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的用法
- java中Scanner的用法。
- java中Scanner的使用方法
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的用法
- java中怎么用Scanner
- Java中Scanner的理解
- Java中Scanner用法总结
- Java中Scanner的用法
- MRI影像学习笔记(五.完结)
- 最大映射
- 【可信计算】可信计算学习研究资源整理
- 一些不错的博客
- [LeetCode] Sum of Left Leaves 左叶子节点的和
- java中Scanner
- A003-算法-滑动窗口队列(未测试)
- windows tcp buffer size 调研
- 3、类和接口
- BZOJ3211 花神游历各国 线段树+并查集
- <模型汇总-5>开山鼻祖-深度信念网络DBN
- Java多线程编程总结
- <转载>名言
- 检验输入的mac是否是符合mac形式