gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 20:22:48 25 4
gpt4 key购买 nike

我在使用 Scanner(System.in) 时从标准中读取由空格或换行符分隔的一堆整数。

在 Java 中有没有更快的方法来做到这一点?

最佳答案

Is there any faster way of doing this in 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 秒

通过进一步弄乱代码(使用 String.indexOf/String.substring 迭代 line),您可以将其降低到大约0.1 秒很容易,但我想我已经回答了你的问题,我不想把它变成一些代码高尔夫。

关于java - 从 Java 中读取 System.in 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com