java 中的scanner_java 中的Scanner
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。
一、扫描控制台输入
这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。/*** 扫描控制台输入
*
*@authorleizhimin 2009-7-24 11:24:47*/
public classTestScanner {public static voidmain(String[] args) {
Scanner s= newScanner(System.in);
System.out.println("请输入字符串:");while (true) {
String line=s.nextLine();if (line.equals("exit")) break;
System.out.println(">>>" +line);
}
}
}
请输入字符串:234
>>>234wer>>>wer
bye>>>bye
exit
Process finished with exit code0先写这里吧,有空再继续完善。
二、如果说Scanner使用简便,不如说Scanner的构造器支持多种方式,构建Scanner的对象很方便。
可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。
三、Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符
使用默认的空格分隔符:public static void main(String[] args) throwsFileNotFoundException {
Scanner s= new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las");//s.useDelimiter(" |,|\\.");
while(s.hasNext()) {
System.out.println(s.next());
}
}123asdf
sd45
789sdf
asdfl,sdf.sdfl,asdf
......asdfkl
las
Process finished with exit code0将注释行去掉,使用空格或逗号或点号作为分隔符,输出结果如下:123asdf
sd45
789sdf
asdfl
sdf
sdfl
asdf
asdfkl
las
Process finished with exit code0四、一大堆API函数,实用的没几个
(很多API,注释很让人迷惑,几乎毫无用处,这个类就这样被糟蹋了,启了很不错的名字,实际上做的全是龌龊事)
下面这几个相对实用:
delimiter()
返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext()
判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine()
如果在此扫描器的输入中存在另一行,则返回true。
next()
查找并返回来自此扫描器的下一个完整标记。
nextLine()
此扫描器执行当前行,并返回跳过的输入信息。
五、逐行扫描文件,并逐行输出
看不到价值的扫描过程public static void main(String[] args) throwsFileNotFoundException {
InputStream in= new FileInputStream(new File("C:\\AutoSubmit.java"));
Scanner s= newScanner(in);while(s.hasNextLine()){
System.out.println(s.nextLine());
}
}packageown;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importjava.net.HttpURLConnection;importjava.net.ProtocolException;importjava.net.URL;importcom.verisign.uuid.UUID;/***@authorwangpeng
**/
public classAutoSubmit {/***@paramargs
*@throwsException*/
public static void main(String[] args) throwsException {
...在此省略N行
Process finished with exit code0Java对字符串支持还是比较弱的,尽管Java一直在努力。
java 中的scanner_java 中的Scanner相关推荐
- java控制台输入 scanner_java控制台输入Scanner、InputStreamReader、Console说明
0 引言 从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流.有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增 ...
- 7、Java基础——从控制台输入:Scanner类的的用法、数据类型转换、字符型的运算、print与println的区别、Java中的转义字符
目录 课前先导 一.Scanner类的用法 二.Scanner语句分析 1.Scanner类 2.Scanner sc = new Scanner(System.in) 3.Scanner获取不同类型 ...
- 浅入深出之Java集合框架(中)
Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...
- 数据结构与算法-java笔记一 更新中
数据结构与算法-java笔记一 更新中 数据结构与算法 什么是数据结构.算法 数据结构学了有什么用: 线性结构 数组 特点 应用 链表 存储结构 链表类型 单链表 双向链表 双向循环链表 链表与数组的 ...
- Java——从前序与中序遍历序列构造二叉树
文章目录 前言 一.已知前序和中序构造二叉树,并层次输出 二.问题分析 1.构造二叉树 2.层次遍历二叉树 三.总结 前言 算法分析--分治法 一.已知前序和中序构造二叉树,并层次输出 二.问题分析 ...
- Java如何从键盘中进行输入
Java如何从键盘中进行输入 package test; import java.util.Scanner; public class KeyboardInput {public static voi ...
- Java实现统计字符串中的字母和数字分别有多少个
Java实现统计字符串中的字母和数字分别有多少个 需求 编写程序,由键盘录入一个字符串,统计字符串中英文字母和数字分别有多少个.比如:Hello12345World中字母:10个,数字:5个. 设计思 ...
- java有道_java中的各种流(老师的有道云笔记)
内存操作流-字节 之前的文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流.此时得使用内存流完成内存的输入和输出操作. 如果程序运行过程中要产生一些临时文件,可采用虚拟文 ...
- java string 占位符_驳《阿里「Java开发手册」中的1个bug》?
前两天写了一篇关于<阿里Java开发手册中的 1 个bug>的文章,评论区有点炸锅了,基本分为两派,支持老王的和质疑老王的. 首先来说,无论是那一方,我都真诚的感谢你们.特别是「二师兄」, ...
最新文章
- Struts+DAO框架搭建完成!(源码)
- [react] React的严格模式有什么用处?
- 实验报告总结_小学四年级数学下册全册知识点总结 ,家有四年级学生的家长收藏...
- Arcengine实现创建网络数据集札记(二)
- iOS 开发之几个 Demo 分享网站
- 算法-递归求1-n的阶乘
- 2011年7月21日 星期四 new
- 2020-12-28 learning opencv3: 十一:resize, pyrDown, buildPyramid, pyrUp
- 52个外文文献论文网站,写论文的你必囤!
- WPF高性能绘图之DrawingCanvas、DrawingVisual、Button的同时使用
- iphone与计算机连接,苹果usb怎么与电脑连接_苹果怎么设置与电脑连接的图文步骤...
- 2018 ISC | 最炫酷的展台和最火爆的分论坛
- 一个花里胡哨的渐变雷达图 echarts图表
- JavaScript实例-文字特效1-文字滚动
- 【字体转换】快速实现繁简字体相互转换
- 数据可视化--实验五:高维非空间数据可视化
- nvcc fatal : Unsupported gpu architecture ‘compute_86‘
- Python | 怎么在基金定投上实现收益最大化
- c语言tab什么意思_速收藏 | 学习C语言最需要记住的基础知识!!
- jQuery点击按钮新增dom
热门文章
- 白话学习MVC(七)Action的执行一
- 请推荐好的工作流产品
- jvm学习笔记(3)——java对象的内存分配和对象的回收(GC)
- JDK源码(10)-Integer(用处最多,重点讲解)
- 得到的概率值_手把手教你将矩阵概率画成图
- java 检测表情符号_一个能在字符串中识别出 Emoji 的简单工具 (支持JavaScript和Java)...
- Python使用itchat获取微信好友
- 【8】万魂杀服务器开发方面之新版GM工具
- 译:重置/还原Windows IIs设置为默认设置
- c如何调用java_JNI学习------C语言调用Java (转)