A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李小然 于 2014-5-17 10:46 编辑

BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!欢迎继续来论坛学习~

查看全部评分

11 个回复

倒序浏览
  1. BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  2.                 int[] arr = new int[10];
  3.                 for(int x = 0; x < 10 ; x++){
  4.                         System.out.println("请输入第"+ ( x + 1 ) +"个数");
  5.                         String str = bufr.readLine();
  6.                         arr[x] = Integer.parseInt(str);
  7.                 }
复制代码
回复 使用道具 举报
看视频 不就完事了么
回复 使用道具 举报
本帖最后由 pandapan 于 2014-5-16 16:31 编辑

把键盘录入的信息存入数组,个人认为比较规范的形式是用ArrayList来操作,然后将结果转为数组
原因如下:
(1) 在程序初始化的时候我们并不知道需要开辟多少空间,因而使用固定数组的形式并不合适。故考虑到可变的数组,也就是集合
(2) 集合中的类型也比较多,再次考虑需求,只是想简单的将键盘录入的信息存入数组,并不涉及到排序或者增删的问题,因而便考虑使用ArrayList(并且我们自己要设置结束标志 eg.("over"))。(3)将信息存入到ArrayList中后,我们的任务就完成了一半,由于要求的是数组,这时我们将ArrayList中的信息转为数组即可
由于开发工具并不在身边,我就纯粹的将示例代码一行一行敲到下面吧
  1. System.out.println("键盘录入信息存入数组的示例");
  2. BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  3. ArrayList<String> al = new ArrayList<String>();
  4. String str = "";
  5. while( !(str=bufr.readLine()).equals("over") ){
  6.       al.add(str);
  7. }
  8. System.out.println("信息录入完毕\n展示录入的结果:");
  9. String[] strArr = al.toArray();//信息存入到了数组
  10. for(String str : strArr){
  11.    System.out.print(str+" ");
  12. }
  13. System.out.println("信息展示完毕");
复制代码
纯粹手敲的代码,不免存在小问题,请见谅,希望能够帮到你.




评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
看看我的,用的Scanner接收键盘录入的,好处是接收到的是字符串,直接将字符串转换成数组,减少了你们讨论的定义数组大小问题。我这个程序有个小问题,就是转换成数组后,每个元素中存入的是个位数,也就是说录入的字符串会被拆分成单个的数字,有时间再搞下,现在要出去了。代码思路程序里写的很详细,就不多说了,直接上代码
  1. import java.util.Scanner;


  2. public class ArrayTest
  3. {

  4.         /**
  5.          * @param args
  6.          * 将录入的数据存入数组中
  7.          * 分析
  8.          * 1.首先要接收键盘录入
  9.          * 2.将接收到的数据转换成字符数组
  10.          * 3.判断输入的字符是否是数字
  11.          * 4.将字符分别存入数组中
  12.          * 步骤:
  13.          * 1.使用scanner接收键盘录入
  14.          * 2.使用charAt方法取出字符串中的字符,判断是否是数字
  15.          * 3.将字符存入数组中
  16.          */
  17.         public static void main(String[] args)
  18.         {
  19.                 // TODO Auto-generated method stub
  20.                 //接收键盘录入
  21.                 System.out.println("请输入");
  22.                 Scanner sc = new Scanner(System.in);
  23.                 String str = sc.nextLine();
  24.                 //将接收到的字符串转换为字符数组
  25.                 char[] ch = str.toCharArray();
  26.                 //判断输入的字符串是否是数字,是就打印,否则就报非法输出
  27.                 for(int a = 0;a<str.length();a++)
  28.                 {
  29.                         if(Character.isDigit(str.charAt(a)))
  30.                         {
  31.                                 System.out.println(ch[a]);
  32.                         }else
  33.                         {
  34.                                 System.out.println("非法输入");
  35.                         }
  36.                 }
  37.         }

  38. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报
pandapan 发表于 2014-5-16 16:22
把键盘录入的信息存入数组,个人认为比较规范的形式是用ArrayList来操作,然后将结果转为数组
原因如下:
( ...

解决了,多谢指教
回复 使用道具 举报
朱晓盼 发表于 2014-5-16 17:30
看看我的,用的Scanner接收键盘录入的,好处是接收到的是字符串,直接将字符串转换成数组,减少了你们讨论 ...

同学,咱们面向的需求是不同的,你的可以实现单行录入的转为数组,并且是单个转换的,然后便直接输出了,我的是面向的是多行的录入可以转换,所以没有对错之分,需求不同而已。
回复 使用道具 举报

简单明了,多谢
回复 使用道具 举报
朱晓盼 发表于 2014-5-16 17:30
看看我的,用的Scanner接收键盘录入的,好处是接收到的是字符串,直接将字符串转换成数组,减少了你们讨论 ...

很清晰的思路,多谢指教
回复 使用道具 举报
简历byte数组对象,之后通过while循环,循环copy文件
回复 使用道具 举报
pandapan 发表于 2014-5-16 21:22
同学,咱们面向的需求是不同的,你的可以实现单行录入的转为数组,并且是单个转换的,然后便直接输出了, ...

是的,楼主的题目没写详细,才会出现这么多的不同需求代码
回复 使用道具 举报
int a[]=new int[10];     BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));     /* 获取数据给数组赋值  */     for(int n=0;n<a.length;n++) {          System.out.print("输入第"+n+"个整数");          a[n]=Integer.parseInt(buf.readLine()); //将输入数字串转化为整数给      }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马