Java 使用Scanner获取键盘输入


package yong.crazy;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

/**
 * 使用Scanner获取键盘输入 (默认UTF-8)
 * Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值
 * 主要方法:hasNextXxx(); 是否还有下一项    nextXxx();获得下一个输入项。
 * @author root
 *
 */

public class TestScanner {

    /**
     * @param args
     * @throws FileNotFoundException
     */
    public static void main(String[] args) throws Exception {

        Scanner sc = new Scanner(System.in);    //System.in代表标准输入,就是键盘输入
//        sc.useDelimiter("\n");    //把回车符作为分隔符   reset();取消
       
       
        System.err.println("输入整数:" + sc.nextInt());        //获得输入的整数
        System.out.println("输入双精度:" + sc.nextDouble());    //获得输入的双精度
        System.out.println("输入字符串:" + sc.next());        //获得输入字符串
        System.out.println("获得一行数据:" + sc.nextLine());    //获得输入一行数据


        Scanner scFile = new Scanner(new File("a.txt"));
        System.err.println("a.txt文件内容如下:");
        while (scFile.hasNextLine())    //读取文件内容
        {
            System.out.println(scFile.nextLine());
        }
       
        //判断是否还有下一项(字符串)
        while (sc.hasNext())
        {
            System.out.println("键盘输入的字符串内容是:" + sc.next());
        }
    }
}


//特别注意的是JDK5.0以前的版本不能这样处理,这多少有些令人沮丧,还好我们用swing包里的方法也不难实现,只需把构造函数里的内容改为如下即可:
//
//    this.name = JOptionPane.showInputDialog("Name?");
//    String input = JOptionPane.showInputDialog("AGE?");
//    this.age = Integer.parseInt(input);
//  
//当然,别忘了导入swing包:
//    import javax.swing.*;

相关内容