java获取键盘输入的字符串 java 获取输入 |
您所在的位置:网站首页 › java从键盘读取单个字符的数据 › java获取键盘输入的字符串 java 获取输入 |
今天讲的是关于Java输入的问题,本来是没想起这个,但是今天下午我宿友问了我Java能不能用scanf和输入的相关的问题,就将自己知道的几个方法整理一下。 第一个方法是直接调用java.lang 包下的System.in.read()方法,获取输入。其中System是java.lang包中的一个类,in为字节输入流,read()是一个方法。下面是源码。 public final static InputStream in = null;用法为: import java.io.IOException; public class Demo02 { public static void main(String[] args) throws Exception { char ch=(char)System.in.read(); System.out.println(ch); } }缺点:该方法能获取从键盘输入的字符,但只能针对一个字符的获取,获取的只是char类型的。返回的参数是整型的,必须强制转换为char类型,不然会输出错误,如果想获得int,float等类型的输入,比较麻烦。 注意:如果传入多个字符,只会返回第一个字符。 补充:System.out.println();其中 out 是 打印流。 public final static PrintStream out = null;第二个方法是比较常用的,就是 Scanner.具体使用如下: import java.util.Scanner; public class Demo02 { public static void main(String[] args) throws Exception { Scanner scanner=new Scanner(System.in); //读取在控制台输入的一整行字符串,无论输入什么当作字符串 String str=scanner.nextLine(); System.out.println("我输入的是"+str); //读取的是整型,当输入非整型数据时会报错 int i=scanner.nextInt(); System.out.println("我输入的是"+i); //Scanner没有读取单个字符的方法 //能读取byte,long,short,double,float } }123hello 我输入的是123hello 23 我输入的是23Scanner 也可以与正则表达式一起进行解析字符串操作。 注意:next()与nextLine()的区别next():①输入的字符串中间不能有空格,若存在空格,返回空格前的字符,然后报错。 如: hello java 我输入的是hello Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.nextInt(Scanner.java:2076) at csdn.Demo02.main(Demo02.java:11)②会自动去掉输入的字符串前面和后面的空格。 hellojava 我输入的是hellojava③有第一二点可以得到,next()不能得到带有空格的字符串 ④回车键结束输入 nextLine():①nextLine()可以获得空白,没有next()中的第一二点的限制。 sss ssl ll 我输入的是 sss ssl ll②同样以回车键结束输入。 第三个方法是I/O流中的缓冲字符输入流,即BufferedReader.import java.io.BufferedReader; import java.io.InputStreamReader; public class Demo02 { public static void main(String[] args) throws Exception { BufferedReader read=new BufferedReader(new InputStreamReader(System.in)); String str=read.readLine(); //没有Scanner中的读取其他类型的方法 System.out.println(str); } }hello java 我输入的是:hello java该readLine()方法与Scanner 中的readLine()用法差不多。但是没有类似于Scanner中能够读取其他类型的方法。 关于其中的InputStreamReader 是字节流与字符流之间的桥梁,其他方面在这里就不详解,有兴趣的小伙拌可以在以后学习I/O流时深入了解。 我目前了解到的关于在控制台输入的方法就这三个,不清楚还有没有多的,还知道其他方法的小伙伴麻烦留言告诉我一下。今天就讲到这里了,大家继续加油鸭!
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |