java获取键盘输入的字符串 java 获取输入

您所在的位置:网站首页 java从键盘读取单个字符的数据 java获取键盘输入的字符串 java 获取输入

java获取键盘输入的字符串 java 获取输入

2023-06-10 12:09| 来源: 网络整理| 查看: 265

今天讲的是关于Java输入的问题,本来是没想起这个,但是今天下午我宿友问了我Java能不能用scanf和输入的相关的问题,就将自己知道的几个方法整理一下。

java获取键盘输入的字符串 java 获取输入_java

第一个方法是直接调用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等类型的输入,比较麻烦。

注意:如果传入多个字符,只会返回第一个字符。

java获取键盘输入的字符串 java 获取输入_字符串_02

java获取键盘输入的字符串 java 获取输入_java_03

补充: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 我输入的是23

Scanner 也可以与正则表达式一起进行解析字符串操作。

注意: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