1.2构造Scanner类的对象,附属于标准输⼊流System.in,之后通过其中的⽅法获得输⼊。
1.3使⽤close();⽅法关闭对象。
这是Java经典的取输入方式,在JDK1.0中引入。此方法通过将 System.in(标准输入流)包装在 InputStreamReader 中来使用,InputStreamReader 包装在 BufferedReader 中,我们可以在命令行中读取用户的输入
常⽤的⽅法:nextLine()(字符串),nextInt()(整型数),nextDouble()(双精度型数);nextFloat()转换成浮点型;nextBoolean()转换成布尔型。
/**按行读取 */import java.io.*public class SystemInTest {
public static void main(String[] args) { BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)) String str try { str = stdin.readLine() System.out.println(str) } catch (IOException e) { e.printStackTrace() } }}
Java控制台输入带空格的字符串,读取的时候只要按照行来读取,就可以获取到输入的空格,下面是示例:/**按行读取 */import java.io.*public class SystemInTest {public static void main(String[] args) { BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in))//建立从控制台输入的类 String str try { str = stdin.readLine()//读取一行 System.out.println(str) } catch (IOException e) { e.printStackTrace() } }}
import java.util.Scanner public class encode2013 { public static void main(String[] args){ String inString String delimiter Scanner scan = new Scanner(System.in) inString=scan.nextLine() delimiter=scan.next() inString= inString.replace(" ",delimiter) System.out.println(inString) }方法/步骤
首先我们创建一个Test类并编写main方法,在main方法中测试java的控制台输入。我们先介绍java.util.Scanner类,它可以处理控制台输入的不同数据类型的数据,我们通过new Scanner创建一个Scanner对象,控制台等待输入,输入完成后敲回车键即可,读取输入的内容,使用nextLine()方法即可。如下图所示,我们编写一个获取从控制台输入字符串的方法,可以通过循环不停的接收,直到达到设定的次数后跳出循环。
请点击输入图片描述
请点击输入图片描述
其他scan.next()和scan.nextLine()用于获取字符串类型的输入,另外我们还可以用scan.nextBoolean()用于获取布尔型的输入,scan.nextInt()用于获取数值型的输入,scan.nextLong()用于获取long类型的输入,如下图所示。
请点击输入图片描述
请点击输入图片描述
我们还可以单独使用System.in.read()读取一个字符或一个数字,有下图可知,尽管控制台输入的是一个字符串,但是实际上只能读取一个字符。在读取数字时,我们输入的数字是8,但实际上读取的是56,因为此时获取的是Unicode编码,使用try catch捕获编码过程中的异常。
请点击输入图片描述
请点击输入图片描述
接下来我们介绍通过字节流的方式读取控制台的输入,我们需要用到BufferedInputStream,首先创建一个BufferedInputStream对象用于接收控制台的输入,我们创建一个byte数组,长度为1024用于存储接收的字符串,使用read方法读取,最后使用new String(byte[])将byte数组转成字符串进行输出,代码中的异常需要处理,我们使用try catch捕获即可。
请点击输入图片描述
接着我们介绍使用字符流的方式获取控制台的输入,创建一个BufferedReader对象,InputStreamReader是字节到字符的缓存流,我们同样使用System.in来获取控制台的输入,readLine()方法用于读取输入的信息,如下图所示。
请点击输入图片描述