Java获取键盘输入的相关类
2014-12-24 21:52
197 查看
现有我们接触的程序中基本上都有与用户交互,因此java也不例外,下面是java通过键盘与用户交互的两个方法。也就是两个类:Scanner,BufferedReader.
在介绍这两个类之前先来回忆一下这句java程序的入口: public static void main(String [] args)。
从开始学习java就一直很纳闷为什么程序入口要这样写,是什么调用了这个主类的静态方法。。其实这个静态方法是有JVM来调用的,args这个形参是JVM负责赋值的。那么JVM是怎么样实现赋值的呢?先看一下下面的代码:
编译运行后可以看到args数组的长度为空。这是因为JVM调用main方法时并没有传给他参数所以会为空。
通过命令行运行java,例如java test 博客园 游戏
你会看到上面的输入为:
2
博客园
游戏
从上面的例子可以看出在运行java时,在类名后紧跟一个或者多个字符串(字符串之间用空格分开),JVM会把这些字符串依次赋值给args数组参数。
Scanner:
Scanner类是java1.5之后新增的一个工具类,是一个基于正则表达式的文本扫描器,可以很方便的获取用户键盘输入。由于Scanner类提供了多个构造器,所以可以从文件,输入流,字符串中解析出基本类型值以及字符串。
你输入什么控制台就会输出什么。。
注意:Scanner类使用空白(包括空格,Tab空白,回车)作为多个输入项之间的分隔符,但它也提供了更改分割符的方法scan.useDelimiter();方法的参数应该是一个正则表达式。Scanner类,不仅可以读取字符串,还可以读取任何基本类型的输入项。Scanner类还提供了两个逐行读取的方法,可以查阅API查看。
BufferedReader:
BufferedReader是java1.5之前读取键盘输入的一个类,BufferedReader是javaIO流中的一个字符包装流,它必须建立在另一个字符流的基础之上。由于标准输入流是:System.in是一个字节流,程序中需要使用转换流InputStreamReader将其包装成字符流。
所以程序中采用如下的形式来获取键盘输入:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
只要是有了BufferedReader的对象就可以调用readLine()方法来逐行读取键盘输入。值得注意的是:每次键盘输入的值都被当作String类型,不像Scanner类可以读取基本数据类型的数据。
在介绍这两个类之前先来回忆一下这句java程序的入口: public static void main(String [] args)。
从开始学习java就一直很纳闷为什么程序入口要这样写,是什么调用了这个主类的静态方法。。其实这个静态方法是有JVM来调用的,args这个形参是JVM负责赋值的。那么JVM是怎么样实现赋值的呢?先看一下下面的代码:
public class Test { public static void main(String [] args) { System.out.println(args.length); for(String arg:args) { System.out.println(arg); } } }
编译运行后可以看到args数组的长度为空。这是因为JVM调用main方法时并没有传给他参数所以会为空。
通过命令行运行java,例如java test 博客园 游戏
你会看到上面的输入为:
2
博客园
游戏
从上面的例子可以看出在运行java时,在类名后紧跟一个或者多个字符串(字符串之间用空格分开),JVM会把这些字符串依次赋值给args数组参数。
Scanner:
Scanner类是java1.5之后新增的一个工具类,是一个基于正则表达式的文本扫描器,可以很方便的获取用户键盘输入。由于Scanner类提供了多个构造器,所以可以从文件,输入流,字符串中解析出基本类型值以及字符串。
import java.util.*; public class Test { public static void main(String [] args) throws Exception { // System.in代表标准输入,就是键盘输入 Scanner scan = new Scanner(System.in); while(scan.hasNext()) { System.out.println("键盘输入的内容是:"+scan.next()); } { {
你输入什么控制台就会输出什么。。
注意:Scanner类使用空白(包括空格,Tab空白,回车)作为多个输入项之间的分隔符,但它也提供了更改分割符的方法scan.useDelimiter();方法的参数应该是一个正则表达式。Scanner类,不仅可以读取字符串,还可以读取任何基本类型的输入项。Scanner类还提供了两个逐行读取的方法,可以查阅API查看。
BufferedReader:
BufferedReader是java1.5之前读取键盘输入的一个类,BufferedReader是javaIO流中的一个字符包装流,它必须建立在另一个字符流的基础之上。由于标准输入流是:System.in是一个字节流,程序中需要使用转换流InputStreamReader将其包装成字符流。
所以程序中采用如下的形式来获取键盘输入:BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
只要是有了BufferedReader的对象就可以调用readLine()方法来逐行读取键盘输入。值得注意的是:每次键盘输入的值都被当作String类型,不像Scanner类可以读取基本数据类型的数据。
public class Test { public static void main(String [] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str= null; while(br!=null) { str = br.readLine(); System.out.println(str); } } }
相关文章推荐
- Java中获取键盘输入值
- JAVA中获取从键盘输入的数据的三种方法
- Java -- 键盘输入 Scanner, BufferedReader。 系统相关System,Runtime。随机数 Randrom。日期操作Calendar
- 76 Java 使用Scanner获取键盘输入
- Java中获取键盘输入值的三种方法
- Java 获取键盘输入
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- java基础知识字节位、javadoc文件的生产、获取键盘输入、方法和变量静态情况
- Java中获取键盘输入值的三种方法
- Java获取键盘屏幕输入简单方法
- Java中获取键盘输入值的三种方法
- Java中从键盘获取输入值
- java 获取键盘输入的方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- java基础__获取键盘输入值(了解即可)
- 转载:Java中获取键盘输入值