我正在阅读一堆用空格或换行符与标准隔开的整数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