Java——键盘输入

本文介绍了Java5中引入的Scanner类,用于以流方式接收输入并支持不同类型的数据读取,如字符串、next和nextLine的区别,以及与C/C++输入函数的比较。

Scanner类

从Java5开始,Java引入了Scanner类作为输入的类型。由上可知,Java的输入是以流的方式进入,只能以字符串的形式进入,但Scanner类支持以数据类型读取内容。

由于我们是使用Scanner这个类进行输入控制,因此首先我们需要构造出这个类的对象。

Scanner input=new Scanner(System.in);

其中Scanner的函数常见的为.nextxxx,xxx为数据类型,若类型为字符串,需要使用.nextLine或者.next。.next相当于C/C++中的scanf和cin,遇到空格或回车就停止。.nextLine相对于C/C++中的gets。

class InputDemo {
    public static void main(String[] args){
    Scanner input=new Scanner(System.in);
    String in=input.next();
    System.out.println(in);
    }
}

### Java 获取控制台键盘输入Java 中,可以通过多种方式实现从控制台获取键盘输入的功能。以下是几种常见的方法及其对应的代码示例。 #### 方法一:使用 `java.io.Console` 类 从 JDK 6.0 开始引入了 `Console` 类来简化与控制台交互的操作。通过该类可以直接读取用户的输入字符串并处理[^1]。 ```java import java.io.Console; public class ConsoleInputExample { public static void main(String[] args) { Console console = System.console(); if (console != null) { String input = console.readLine("请输入内容:"); System.out.println("您输入的内容是:" + input); } else { System.out.println("无法访问控制台!"); } } } ``` 需要注意的是,在某些 IDE 或运行环境中可能无法正常调用 `System.console()`,因为它依赖于标准的终端环境。 --- #### 方法二:利用 `Scanner` 类 `Scanner` 是一种更灵活的方式,支持不同类型的数据读取操作(如整数、浮点数等)。它非常适合用来解析复杂的用户输入场景[^2]。 下面是一个简单的例子展示如何接收 int 类型的一维数组以及二维数组: ##### 输入一维数组 ```java import java.util.Scanner; public class ScannerArrayExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一维数组长度:"); int length = scanner.nextInt(); int[] array = new int[length]; System.out.println("依次输入数组元素:"); for (int i = 0; i < length; i++) { array[i] = scanner.nextInt(); } System.out.print("您输入的一维数组为:"); for (int value : array) { System.out.print(value + " "); } } } ``` ##### 输入二维数组 对于多维度的情况,则需嵌套循环完成逐层赋值。 ```java import java.util.Scanner; public class TwoDimensionalArrayExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入二维数组行数:"); int rows = scanner.nextInt(); System.out.print("请输入列数:"); int cols = scanner.nextInt(); int[][] matrix = new int[rows][cols]; System.out.println("按顺序输入各位置上的数值:"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { matrix[i][j] = scanner.nextInt(); } } System.out.println("您输入的二维矩阵为:"); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { System.out.print(matrix[i][j] + "\t"); } System.out.println(); } } } ``` --- #### 方法三:采用 `BufferedReader` 配合 `InputStreamReader` 这种方式效率较高,尤其适合大批量数据流传输场合下的快速录入需求[^3]。 以下是一段基础示范程序: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class BufferedReaderExample { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入一段文字:"); String line = bufferedReader.readLine(); // 单次读入一行文本 System.out.println("您的输入是:" + line); } } ``` 尽管此法较为底层复杂度稍高一些,但在性能方面具有优势。 --- ### 总结 以上分别介绍了三种主流技术手段——即借助 `Console`, `Scanner` 和组合运用 `BufferedReader` 来达成由键盘向应用程序传递信息的目的。每种方案各有优劣之处,开发者应依据实际项目背景选取最合适的工具加以实践应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值