首先我自己也是经常忘记一些方法,作为一个依赖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));
,接着通过BufferReader
的readLine()
方法读取键盘输入。BufferedReader类还有一个read()
方法,是用来接受一个字符,返回值是该字符的ASCII码的整形数字。
使用DataInputStream类
包名是java.io.DataInputStream
,然后新建DataInputStream dis = new DataInputStream(System.in);
最后因为DataInputStream
的readLine()
方法已经被废弃,只剩下一些读取整形,字符等方法,所以如果要接受字符串还是要用BufferedReader类
使用Console类
这就是最后一个方法了,也是一个很简单的方法,包名是java.io.Console
,然后直接新建Console
类Console console = System.console();
,使用该类的readLine()
方法即可返回字符串,它的问题是,在很多IDE下运行会出问题,笔者试过用IDEA和Eclipse都报空指针异常,但在终端运行就一切正常。
以上就是四种在JAVA中获得用户输入的方法。
网友评论