关于JAVA的四种用户输入方式

首先我自己也是经常忘记一些方法,作为一个依赖IDE的人,每次都会忘记一些知识点,所以我决定把那些容易淡忘且不常用的知识总结一下,一来防止自己忘掉,二来也帮大家归纳一点。

使用Scanner(最简单的方法)

使用方法很简单啦,先导包java.util.Scanner,有IDE的时候我从来不会记包名的啊。然后新建一个Scanner对象,这么写:Scanner scanner = new Scanner(System.in);。最后使用Scanner的方法next(),就可以接受用户键盘输入并赋值给一个String对象啦。值得一提的是,Scanner类有多种接受输入的方法,除了上面的next(),还有nextInt(), nextByte(), nextBoolean(), nextFloat()等等,而且还可以接受用于科学计算的BigInteger, BitDecimal的输入。最后我要说nextLine()方法,用于接受一行输入,那么它和next()的区别到底在哪呢。答案就是next()方法只会接受空格之前的输入,而nextLine()可以接受空格、tab,若接收到回车则返回。所以一般nextLine()比较常用。获取输入后,如果想按空格分割字符串的话,则可以简单调用str.split("\\s+");返回一个字符串数组,\s这里是正则语法,匹配单个空白字符。

使用BufferedReader和InputStreamReader类

老规矩先导包,包名是java.io.BufferedReader,然后新建BufferedReader br = new BufferedReader(new InputStreamReader(System.in));,接着通过BufferReaderreadLine()方法读取键盘输入。BufferedReader类还有一个read()方法,是用来接受一个字符,返回值是该字符的ASCII码的整形数字。

使用DataInputStream类

包名是java.io.DataInputStream,然后新建DataInputStream dis = new DataInputStream(System.in);最后因为DataInputStreamreadLine()方法已经被废弃,只剩下一些读取整形,字符等方法,所以如果要接受字符串还是要用BufferedReader类

使用Console类

这就是最后一个方法了,也是一个很简单的方法,包名是java.io.Console,然后直接新建ConsoleConsole console = System.console();,使用该类的readLine()方法即可返回字符串,它的问题是,在很多IDE下运行会出问题,笔者试过用IDEA和Eclipse都报空指针异常,但在终端运行就一切正常。

以上就是四种在JAVA中获得用户输入的方法。

你可能感兴趣的:(关于JAVA的四种用户输入方式)