当前位置: 首页 > 面试题库 >

用Java从System.in中读取的最快方法是什么?

孙阳旭
2023-03-14
问题内容

我正在阅读一堆用空格或换行符与标准隔开的整数Scanner(System.in)

用Java有没有更快的方法呢?


问题答案:

用Java有没有更快的方法呢?

是。扫描仪相当慢(至少根据我的经验)。

如果您不需要验证输入,建议您将流包装在BufferedInputStream中,并使用类似String.split/的内容Integer.parseInt

比较一下:

使用此代码读取 17兆字节 (4233600个数字)

Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
    sum += scanner.nextInt();

我的机器花了 3.3秒 。而这个片段

BufferedReader bi = new BufferedReader(new InputStreamReader(System.in));
String line;
while ((line = bi.readLine()) != null)
    for (String numStr: line.split("\\s"))
        sum += Integer.parseInt(numStr);

花了 0.7秒

通过进一步弄乱代码line使用String.indexOf/
反复进行String.substring),您可以很容易地将其降低到大约0.1秒,但是我想我已经回答了您的问题,并且我不想将其变成一些代码。



 类似资料:
  • 问题内容: 我不确定如何从Java文件的系统输入中读取内容。 我想可以打电话 我想在哪里将文件作为字符串读取并在main方法中提供给myProg。 有什么建议么? 问题答案: 你可以使用来读取标准输入。它的工作原理就像从键盘输入它一样。操作系统处理从文件到标准输入的操作。

  • 问题内容: 在我的PHP应用程序中,我需要 从许多文件 (主要是日志) 的末尾开始读取多行 。有时我只需要最后一个,有时我需要数十或数百。基本上,我想像Unix 命令一样灵活。 这里有一些关于如何从文件中获取最后一行的问题(但是我需要 N 行),并给出了不同的解决方案。我不确定哪一个最好,哪个表现更好。 问题答案: 方法概述 在互联网上搜索时,我遇到了不同的解决方案。我可以将它们分为三种方法: 天

  • 问题内容: 我需要浏览大量的字符串URL,并从中提取域名。 例如: **http://www.codingdict.com/questions 将提取 **www.codingdict.com 我最初使用的是URL对象初始化,但是却为该过程增加了很多时间,而且似乎是不必要的。 有没有一种更快的方法来提取可靠的主机名? 谢谢 编辑: 我的错,是的www。将包含在上面的域名示例中。此外,这些网址可能是

  • 问题内容: 这可能是一个愚蠢的问题,但什么是阅读和分析的最简单方法JSON从URL中的Java? 在Groovy中,只需几行代码即可。我发现Java示例太长了(并且具有巨大的异常处理块)。 问题答案: 使用Maven工件,我得到了以下代码,我认为这很短。尽可能短,但仍然可用。

  • 问题内容: 从其他一些应用程序中,我正在获取XML文件。 我想逐个节点读取该XML文件,并将节点值存储在数据库中以备将来使用。 那么,使用Java读取XML文件和检索节点值的最佳方法/ API是什么? 问题答案: dom4j和jdom非常易于使用(暂时忽略“最佳”需求;))

  • 问题内容: 当前,我们的Java应用程序使用制表符分隔的* .cfg文件中包含的值。我们需要更改此应用程序,以使其现在使用XML文件。 为了从此文件中读取值,使用的最佳/最简单的库是什么? 问题答案: 当然,根据您的需要有很多好的解决方案。如果只是配置,则应查看Jakarta commons- configuration 和commons- digester 。 您总是可以使用获取文档的标准JDK