gpt4 book ai didi

java - 为什么 Double.parseDouble(scan.next()) 比 scan.nextDouble() 快这么多?

转载 作者:行者123 更新时间:2023-12-03 19:06:00 24 4
gpt4 key购买 nike

所以我有一个文件要读入,我知道数据将如何列出。例如,我知道每个新行的第一个标记将是 double 。

我一直在使用 Scanner 并且只是使用 scan.nextDouble() 来读取 double ,但是我被告知 Double.parseDouble(scan.next()) 而不是它加快了从中读取数据的过程文件从 30 秒缩短到 ~5 秒。

scan.nextInt() 与 Integer.parseInt(scan.next()) 的情况相同。

在我正在阅读的文件中,它的每一行都变成了 int double int int,大约有 40,000 行。

那么是什么让它变得如此快呢?

最佳答案

都是因为scan.nextDouble()从后面的Stream中找到最近的Doublelike值。它不能确定下一个字符串值是否是类似 double 的值,例如

s = "abcde1234.5"scan.nextDouble(s) 将为 1234.5,但 Double.parseDouble(scan.next()) 将抛出错误。

您将在源代码中找到更多详细信息。

关于java - 为什么 Double.parseDouble(scan.next()) 比 scan.nextDouble() 快这么多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11919024/

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