Java中Scanner的理解大总结
来源:互联网 发布:老男孩linux运维视频 编辑:程序博客网 时间:2024/05/25 19:58
Scanner类常用的方法:
Scnaner(File file);Scnaner(String filename);创建一个从特定文件扫描的扫描器
hasNext();还有可读取的书库返回true
next();返回下一个标志作为字符串
nextLine();使用行分隔符从这个扫描器返回一个行结束
nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();分别返回一个对应类型的值
useDelimiter(string pattern);设置这个扫描器的分割模式并返回这个扫描器
一,从控制台输入
当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可
public class scanner { public static void main(String[] args) { Scanner s = new Scanner(System.in); //从控制台输入 System.out.println("请输入字符串:"); while (true) { String line = s.nextLine(); System.out.println( line); } } }
Scanner默认使用空格作为分割符来分隔文本
public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 456 789"); while (s.hasNext()) { System.out.println(s.next()); } }//输入结果就是123456789
二,从文件扫描读入
Scanner的构造器支持多种方式,构建Scanner的对象很方便,可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。
Scanner(File file) //构造一个新的Scanner,它生成的值是从指定文件扫描的
Scanner(InputStream source) //构造一个新的 Scanner,它生成的值是从指定的文件的输入流扫描的
Scanner(String filename) //构造一个新的Scanner,它生成的值是从指定文件名扫描的。
文件对象,文件名,文件输入流
public static void main(String[] args) throws FileNotFoundException { InputStream in = new FileInputStream(new File("score.txt")); Scanner s = new Scanner(in);//文件输入流 //new Scanner("score.txt");new Scanner(new file("score.txt"));都可以 while(s.hasNextLine()){ System.out.println(s.nextLine()); } }
三,Scanner是怎么工作的
next();nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();都是令牌读取方法,他们分隔符默认情况下是空格。
next()和nextLine() 的区别:
next()方法读取一个由分割付分割的字符,但是nextLine()是读取一个以行分割符结束的行
例如test.txt文本中有
23 345
Scanner input=new Scanner(new File("test.txt"));int a=input.next();String line=input.nextLine();//要读到行分隔符
的结果是a的值是34 ,line的值是”,”3,’4’,’5’
再如如果从键盘输入23,然后按回车键,接着输入345,然后在按钮回车键,执行
Scanner input=new Scanner(new File("test.txt"));int a=input.next();String line=input.nextLine();//要读到行分隔符
之后的结果是a的值是23,但是line的却是空的字符串,因为nextInt()读取到23,然后在分割付处停止,这里的分隔符是行分隔符,就是回车键,所以nextLine还没有到数据就结束了,为空字符串。
- Java中Scanner的理解大总结
- Java中Scanner的理解
- Java中Scanner用法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的nextInt(),next(),nextLine()方法总结
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的用法
- java中Scanner的用法。
- java中Scanner的使用方法
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的用法
- Java中Scanner的使用
- java中Scanner的hasNext()的疑问
- Java中Scanner类的用法
- mac下.gitconfig配置别名alias(刚刚)
- sphinx –rotate机制详解
- 微信公众平台开发教程第19篇-应用实例之人脸检测
- 关于openCV getRotationMatrix2D 函数中平移向量的理解
- 黑马程序员--类与对象
- Java中Scanner的理解大总结
- 规范化的Python编程-迭代器和生成器
- gclub บนมือถือ 24 ชั่วโมง
- Factorization Machines 学习笔记(二)模型方程
- android-实现WebView只能滚动不能点击
- html中的tabIndex属性
- NodeJs服务器管理
- Android MediaProvider 分析
- JavaScript高级程序设计(第三版)学习笔记(1)