Java中从控制台输入数据的几种常用方法

Java控制台输入方法
本文介绍了Java中三种从控制台获取用户输入的方法:使用System.in直接读取字符、使用Scanner类读取各种类型的数据以及使用BufferedReader类读取包含空格的完整行。

Java中从控制台输入数据的几种常用方法

转自 http://www.cnblogs.com/ydpvictor/archive/2012/06/17/2552981.html

一、使用标准输入串System.in
  //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字
  //System.in.read()返回一个整数
  //必须初始化
  //int read = 0;
  char read = ‘0’;
  System.out.println(“输入数据:”);
  try {
   //read = System.in.read();
   read = (char) System.in.read();
  }catch(Exception e){
   e.printStackTrace();
  }
  System.out.println(“输入数据:”+read);

二、使用Scanner取得一个字符串或一组数字
  System.out.print(“输入”);
  Scanner scan = new Scanner(System.in);
  String read = scan.nextLine();
  System.out.println(“输入数据:”+read); 

/*在新增一个Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得用户输入。Scanner的next()方法用以取得用户输入的字符串;nextInt()将取得的输入字符串转换为整数类型;同样,nextFloat()转换成浮点型;nextBoolean()转换成布尔型。*/

三、使用BufferedReader取得含空格的输入

//Scanner取得的输入以space, tab, enter 键为结束符,
  //要想取得包含space在内的输入,可以用java.io.BufferedReader类来实现
  //使用BufferedReader的readLine( )方法
  //必须要处理java.io.IOException异常
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in ));
  //java.io.InputStreamReader继承了Reader类
  String read = null;
  System.out.print(“输入数据:”);
  try {
   read = br.readLine();
  } catch (IOException e) {
   e.printStackTrace();
  }
  System.out.println(“输入数据:”+read); 

Java 中从控制台输入多行数据,可以使用多种方式实现。以下是几种常用方法来实现输入 5 行数据的需求: ### 使用 `BufferedReader` 输入多行数据 `BufferedReader` 是传统的输入方式之一,它提供了 `readLine()` 方法用于读取一行文本。可以通过循环读取 5 次来获取 5 行数据: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] lines = new String[5]; for (int i = 0; i < 5; i++) { try { System.out.print("请输入第 " + (i + 1) + " 行数据: "); lines[i] = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } } // 打印输入数据 for (String line : lines) { System.out.println(line); } } } ``` ### 使用 `Scanner` 输入多行数据 `Scanner` 是较为方便的一种方式,可以通过 `nextLine()` 方法读取一行输入。同样使用循环读取 5 次即可: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] lines = new String[5]; for (int i = 0; i < 5; i++) { System.out.print("请输入第 " + (i + 1) + " 行数据: "); lines[i] = scanner.nextLine(); } // 打印输入数据 for (String line : lines) { System.out.println(line); } } } ``` ### 使用 `System.in` 输入多行数据 虽然 `System.in` 本身较为基础,但结合 `InputStreamReader` 和 `BufferedReader` 可以实现高效的输入。这种方式与 `BufferedReader` 类似,但更底层: ```java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String[] lines = new String[5]; for (int i = 0; i < 5; i++) { try { System.out.print("请输入第 " + (i + 1) + " 行数据: "); lines[i] = reader.readLine(); } catch (IOException e) { e.printStackTrace(); } } // 打印输入数据 for (String line : lines) { System.out.println(line); } } } ``` ### 小结 - `BufferedReader` 和 `Scanner` 都可以实现从控制台输入多行数据,`Scanner` 的使用更为简单直观。 - `System.in` 通常需要结合 `InputStreamReader` 或 `BufferedReader` 使用,适合对输入流进行更底层的操作。 - 如果只是简单的输入需求,推荐使用 `Scanner`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值