gpt4 book ai didi

java - 从文件中读取 double 值

转载 作者:搜寻专家 更新时间:2023-11-01 02:18:22 25 4
gpt4 key购买 nike

我正在尝试从文件中读取一些数字( double )并将它们存储在 ArrayList 和数组(是的,我需要两者)中,代码如下:

try {
Scanner scan = new Scanner(file).useDelimiter("\\s*\\n");

while(scan.hasNextDouble())
{
tmp.add(scan.nextDouble());
}

Double[][] tmp2 = new Double[tmp.size()/2][2];
int tmp3 = 0;
for(int i = 0; i < tmp.size()/2; i++)
{
for(int j = 0; j < 2; j++)
{
tmp2[i][j] = tmp.get(tmp3);
tmp3++;
}
}

} catch (FileNotFoundException e1) {
e1.printStackTrace();
}

我要读取的文件是:

0.0 0.0
0.023 0.023
0.05 0.05
0.2 0.2
0.5 0.5
0.8 0.8
0.950 0.950
0.977 0.977
1.0 1.0

但是我的代码不起作用,hasNextDouble() 函数没有找到任何东西,我做错了什么?

编辑:好的,所以我稍微编辑了源代码(从 Object[][] 更改为 Double[][])并在将值插入 ArrayList 后将插入值添加到数组中,但它仍然不起作用- 'while' 循环不会执行一次。

最佳答案

我尝试减少代码以仅单独测试扫描仪。以下代码适用于您的数据文件:

public static void main(String[] args) {
Scanner scan;
File file = new File("resources\\scannertester\\data.txt");
try {
scan = new Scanner(file);

while(scan.hasNextDouble())
{
System.out.println( scan.nextDouble() );
}

} catch (FileNotFoundException e1) {
e1.printStackTrace();
}

}

我得到了以下(预期的)输出:

0.0
0.0
0.023
0.023
0.05
0.05
0.2
0.2
0.5
0.5
0.8
0.8
0.95
0.95
0.977
0.977
1.0
1.0

尝试此操作以确保您引用的是正确的文件。

关于java - 从文件中读取 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1855753/

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