【发布时间】:2016-09-25 19:47:53
【问题描述】:
我是 OOP 的新手,但我正在尝试创建我的第一个更大的程序。 我已经阅读了一个 txt 文件并将值(双精度数)存储到一个数组中,我称之为 originalArray。文本有两列和 20 行。因此,当我想打印 txt 文件第一列中的值时,我只需编写:
System.out.println(originalArray[0]);
OUTPUT: 1991.00
300.50
498.50 .... et cetera...
我的问题是我想使用 for 循环(或其他)来创建两个新数组,每个数组都包含来自“原始数组”的一列。
我认为它就像使用 for 循环一样简单,就像这样;
double [] newArray = new double [20];
for(int i = 0; i < originalArray.length; i++){
newArray[i] = originalArray[0] //if I want to fill it with the first
//columns data... the second would be newArray2[i] = originalArray[1]
}
但这会用 originalArray 中的列中的一个元素填充新数组...所以 - 我需要帮助来了解如何编写循环来用一个选定列中的所有元素填充新数组。
非常感谢您的帮助!
问候/沮丧的新手
编辑:这就是我阅读 txt 文件的方式:
String file = "C:\\Users\\komena\\Desktop\\30th-sales.csv";
BufferedReader br = null;
String line = "";
String splitBy = ";";
originalArray = new double [20];
br = new BufferedReader(new FileReader(file));
br.readLine();//skip the first line to get rid of header…
while ((line = br.readLine()) != null) {
String[] readlineArray = line.split(splitBy);
for (int i = 0; i < readlineArray.length; i++) {
originalArray[i] = Double.parseDouble(readlineArray[i]);
}
全文(csv)文件:
300.50;330.00
489.50;296.50
34.50;399.50
900.00;1890.00
2052.00;568.00
354.00;0.00
399.00;0.00
1299.50;0.00
426.00;259.00
29.50;2300.50
99.50;349.50
2500.50;0.00
358.50;113.00
789.00;239.50
998.00;348.00
16.50;679.00
800.00;723.00
1899.50;950.50
550.50;568.00
【问题讨论】:
-
originalArray[0]中第一列的数据你有吗?originalArray的类型是什么? -
他们都是双重的。当我读取文件时,我首先将其读取到字符串数组,然后将其解析为双精度。稍后我需要使用数组来计算值,这就是为什么我需要将列分成两个数组。 (将分析每一列)。
-
1991.00, 300.50, 489.50, 34.50, 900.00, 2052.00, 354.00, 399.00, 1299.50, 426.00, 29.50, 99.50, 2500.50, 358.50, 789.00, 998.00, 16.50, 800.00, 1899.50, 550.50 // the originalArray[0]的数据