女青年与西西 2017-11-12 08:04 采纳率: 0%
浏览 1624
已采纳

java不用scanner, 用bufferedreader读取

如果要读取:
13 1 2 3 4 5 6 7 8 9 10 20 16 18这样的数据,甚至更多,用scanner时间很长,测评系统只有100ms时间,所以用bufferedreader读取,请问怎么实现一个个读取,并把他们放入数组。
这是我用scanner实现的:

 Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int []num = new int[N];
        for (int i = 0; i < N; i++)
        {
            num[i] = in.nextInt();
        }

感谢!

  • 写回答

1条回答 默认 最新

  • 战在春秋 2017-11-12 08:14
    关注

    可以这样:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    class BufferedReaderTest
    {
        public static void main(String[] args) throws IOException {
            BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));
    
            int num[] = new int[1000];
            String[] strNums;
    
            strNums = bi.readLine().split("\\s");
            for(int i=0; i<strNums.length; i++) {
                num[i] = Integer.parseInt(strNums[i]);
            }
        }
    }
    

    基本思路是整行读入,然后用split函数分割处理后存入数组。
    注意输入格式应如下:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

    如果对您有帮助,请采纳答案好吗(鼠标在我的答案区域停留片刻即可看到采纳按钮),谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器