gpt4 book ai didi

java - java 中的 nextFloat 问题

转载 作者:行者123 更新时间:2023-12-01 17:16:41 28 4
gpt4 key购买 nike

我需要它跳过文本文件的第一行,然后跳过表格的前两列。到目前为止我已经:

}public static float [][] read_data(String strFileName){
float[][] fileread = new float[ROWS][COLUMNS];
File filedata = new File(strFileName);
try {
Scanner fileReader = new Scanner(filedata);


System.out.println(fileReader.nextLine());


for(int rowCounter=0;rowCounter<23;) {

System.out.println(fileReader.next());
System.out.println(fileReader.next());

for(int counter = 0;counter<6;) {


fileread[rowCounter][counter]= fileReader.nextFloat();


counter++;

}

rowCounter++;}
fileReader.close();
}catch(FileNotFoundException e) {
System.out.println("File Not Found!");
}return fileread;
}

问题是它在扫描器的 nextFloat() 方法上抛出输入不匹配异常,但它应该读取的值是 float 。我不确定这个问题,正在寻找比我更有知识的人。这是我应该读取的文本文件。

Federal_Fiscal_Year         
2014 Q2 255.3 350.7 606.0 37.8 62.2 8.3 373.6
2014 Q3 254.1 355.1 609.2 38.6 61.9 8.2 378.8
2014 Q4 258.8 370.8 629.7 41.2 65.1 8.2 385.8
2015 Q1 258.0 373.0 630.9 40.9 65.1 8.2 394.9
2015 Q2 262.9 388.4 651.3 43.4 68.7 8.3 402.8
2015 Q3 260.7 390.8 651.6 44.1 68.0 8.2 410.3
2015 Q4 264.8 404.9 669.7 46.8 71.1 8.1 416.7
2016 Q1 264.1 406.6 670.7 46.6 71.1 8.1 423.6
2016 Q2 269.0 421.8 690.8 49.4 75.2 8.2 431.2
2016 Q3 266.7 423.5 690.3 50.2 74.5 8.0 439.2
2016 Q4 270.1 436.1 706.2 53.0 77.8 7.9 447.3
2017 Q1 268.8 436.5 705.3 52.8 77.5 7.9 456.2
2017 Q2 272.5 449.6 722.2 55.7 81.5 7.9 464.5
2017 Q3 269.9 450.3 720.2 56.6 80.5 7.8 472.3
2017 Q4 273.1 462.4 735.5 59.7 83.9 7.6 480.3
2018 Q1 272.2 463.3 735.5 59.6 83.7 7.6 489.0
2018 Q2 276.4 476.6 753.0 62.8 87.7 7.6 495.9
2018 Q3 274.2 477.8 752.1 63.9 86.7 7.4 501.9
2018 Q4 277.5 489.6 767.1 67.0 89.9 7.1 508.0
2019 Q1 276.8 490.9 767.7 71.3 89.8 6.9 515.6
2019 Q2 280.0 503.5 783.5 70.7 93.9 6.6 521.8
2019 Q3 277.4 504.2 781.6 71.9 92.9 6.3 528.4
2019 Q4 280.7 516.0 796.7 75.2 96.1 6.1 536.1
2020 Q1 279.6 516.3 795.8 75.3 95.6 5.9 542.4

最佳答案

在循环中使用 readFloat 时,您只读取 6 列,这基本上意味着当您认为自己位于下一行时 - 其实不是,您位于当前行的最后一个元素,因此当您再跳过两个条目时最终尝试从第 2 列的值中解析Float - 这是“Q3”,显然不完全是 float 。但您的输入文件有 7 列。我建议您使用常量(ROWS/COLUMNS)而不是硬编码数字,例如:

for (int rowCounter = 0; rowCounter < ROWS; rowCounter++) {
System.out.println(fileReader.next());
System.out.println(fileReader.next());

for (int counter = 0; counter < COLUMNS; counter++) {
fileread[rowCounter][counter] = fileReader.nextFloat();
}
}

PS,您可以将增量作为 for() 语句的一部分,如上所述。

关于java - java 中的 nextFloat 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373486/

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