Scanner类是JDK5新添加的一个类,主要作用是处理输入流、文件和文本内容等 。
这个类在java.util包里面,实现了Iterator接口,而且io处理采用了jdk1.4才发布的nio。
由于这个类实现了Iterator接口,如果全部是string的话,就可以采用next(),hasnext()来进行迭代,就像是迭代一个字符串集合一样。如果处理的内容不是string的话,这个类也提供了nextXXX(),hasNextXXX()方法,处理十分方便。
下面分别讲一下怎么处理输入流、文件和文本
1.输入流处理:
/** 输入流demo */
public static void inputStreamDemo() {
    System.out.println("please input int & double:");
    Scanner cin = new Scanner(System.in);
    int inputInt = cin.nextInt();
    double inputDouble = cin.nextDouble();
    System.out.printf("inputInt:%d\n", inputInt);
    System.out.printf("inputDouble:%f\n\n", inputDouble);
}
首先声明Scanner cin = new Scanner(System.in);,然后调用Scanner的nextInt和nextDouble接受来自控制台输入的int和double。
2.文件处理:
/** 文件demo */
public static void fileDemo() throws Exception{
    System.out.println("fileDemo:");
    Scanner cin = new Scanner(new File("scannerDemo"));
    while(cin.hasNextLine()){
     System.out.println(cin.nextLine());
    }
    cin.close();
    System.out.println();
}
如果是文件输入流的话,就不用取得一个输入流的,只需要新建一个file传入Scanner的构造参数就行了。hasNextLine和nextLine方法可以发现和Iterator的函数相当类似。
注意如果处理文件的话,处理完毕一定要关闭文件。如果需要处理一个文件的话,用这个类不止代码上复杂度有所减少,而且采用了nio,所以性能上也有保证。
3.文本处理
/** string demo*/
public static void stringDemo() {
    System.out.println("stringDemo:");
    String str="10 9 stringDemo 9.8";
    Scanner cin = new Scanner(str);
    System.out.println("inputInt:"+cin.nextInt());
    System.out.println("inputInt:"+cin.nextInt());
    System.out.println("inputString:"+cin.next());
    System.out.println("inputDouble:"+cin.nextDouble());
}
这个用法和输入流的基本类似,区别就是构造函数而已。

hobo 2008-04-28 21:21 发表评论

转载于:https://www.cnblogs.com/zhouweiwei/archive/2008/04/28/1866505.html

Scanner--控制台输入相关推荐

  1. java零基础第四天 if分支结构和Scanner控制台输入 最后有作业

    if分支结构 1. 代码运行过程中的常见结构 顺序结构代码从上到下,从左至右执行,最基本原则.分支结构路上的风景不一样,向左走向右走结果不一样.代码满足不同的条件,执行不同的结果循环结构吃饭,睡觉,撸 ...

  2. scanner 获取控制台信息_Java使用Scanner类进行控制台输入实现方法

    在Java中,不像Python一样直接用个input()就行的.Java控制台输入比较麻烦,下面是比较易懂的教程. 首先,新建一个调用Java的Scanner(扫描仪)的类,新建main方法. imp ...

  3. java控制台输入 scanner_java控制台输入Scanner、InputStreamReader、Console说明

    0 引言 从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流.有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增 ...

  4. 7、Java基础——从控制台输入:Scanner类的的用法、数据类型转换、字符型的运算、print与println的区别、Java中的转义字符

    目录 课前先导 一.Scanner类的用法 二.Scanner语句分析 1.Scanner类 2.Scanner sc = new Scanner(System.in) 3.Scanner获取不同类型 ...

  5. 控制台输入类java.util.Scanner

    canner类最实用的地方表现在获取控制台输入.当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,把所输入的内容传给Scanner,作为扫描对象.如果要获 ...

  6. 循环获取控制台输入scanner.nextLine()问题

    循环获取控制台输入scanner.nextLine()问题 直接上代码 public static void main(String[] args) {Scanner scanner = new Sc ...

  7. java中控制台输入二维数组(Scanner类总结)

    由于牛客和LeetCode上的题目不用自己写输入,但实际笔试中都需要从输入开始写,遇到需要从控制台输入二维数组的情况,故对java中的Scanner类作整理和总结. 通过 Scanner 类能获取用户 ...

  8. java控制台两个字符串_java控制台输入字符串

    实验要求: 1/7 1.掌握 JDK 的安装及参数配置方法,能在控制台界面使用 Java 命令进行 Java 程序的编译及运行. 2.掌握 Eclipse 软件安装方法.3.掌握在 ...... 习题 ...

  9. JDK5中的控制台输入

    Scanner类是JDK5新添加的一个类,主要作用是处理输入流.文件和文本内容等 . 这个类在java.util包里面,实现了Iterator接口,而且io处理采用了jdk1.4才发布的nio. 由于 ...

  10. java控制台next_java读取控制台输入以及next() ,nextLine(), nextInt() 和nextDouble()的比较...

    (1)读取控制台输入 java的控制台输入由System.in完成. 为了得到一个绑定到控制台的字符流,你能够把System.in包装在一个BufferedReader对象中建立一个字符流.html ...

最新文章

  1. 文巾解题 27. 移除元素
  2. 中计算散度的函数_荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly
  3. java的比较器_java两种比较器总结
  4. 使用GUI工具Portainer.io管控Docker容器
  5. python常见面试题目(面试官最爱问的python面试题)
  6. 教程视图Android教程(十三)-- Activity间的切换
  7. android 连续调用方法是,android – SwitchPreferences多次调用onPreferenceChange()方法
  8. Map按照key的ASCII码排序
  9. win7 C盘满如何清理
  10. fms安装教程 linux_[AS3]linux64下安装FMS5.0的方法
  11. 贝尔商道赚钱思维36道第04道:二八定律,约仅有20%的因素影响80%的结果
  12. HTML如何设置四边形,css实现三角形和平形四边形
  13. linux系统可以用autocad吗,在Linux操作系统下最佳的五款CAD软件
  14. 安卓指纹支付(指纹识别)
  15. 计算机职称照图片,职称计算机xp系统知识:插入图片、艺术字、图示
  16. 如何在cmd中运行PHP
  17. Altium Designer--如何隐藏连线
  18. 设置计算机id管理员默认密码是多少钱,路由器默认(初始)管理员登录密码是多少?...
  19. 常用音频编码格式简介(PCM、G726、ADPCM、LPCM、G711、AAC)
  20. matlab自带滤波器函数

热门文章

  1. html箭头实现流程箭头,js实现带箭头的进度流程
  2. python pytest setupclass_python – Pytest – 如何将参数传递给setup_class?
  3. 飞磨科技php,昆虫飞行信息系统(飞行磨)
  4. 汉生机器人_2019高工机器人核心零部件会议
  5. java2实用教程第四版实验指导_Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)...
  6. 史上最全Java集合关系图
  7. python装饰器与闭包_Python:函数装饰器和闭包
  8. 运筹优化(十六)--排队论基础及其最优化求解
  9. 人脸对齐(六)--ERT算法
  10. 系统学习深度学习(十三)--Batch Normalization