无法将扫描的字符串正确输入二维数组
Unable to correctly input scanned string into 2D array
我要阅读文件并编制 运行 销售人员的总计,以及他们对每个产品的总计和每个产品的总计。我必须将所有这些存储在二维数组中(不允许使用列表)并以特定格式打印。
文本文件记录如下:
1,4,10.20
2,2,17.20
etc
etc
第1列是personID第2列是产品编号第3列是金额
我的代码尝试将每一行拆分为一个字符串,然后将每个值进一步拆分为一个索引,然后将其存储在一个二维数组中。我觉得很傻,但我遇到了转换错误。无论我做什么,我都无法以可接受的格式制作数组存储量。由于某种原因,我无法将数组创建为双精度数组。它 returns 在我尝试编译时终止。我的教授说一个整数应该可以,但我无法准确求和。
package HW1;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class salesList {
public static void main(String[] args) throws FileNotFoundException{
Scanner salesList;
salesList = new Scanner(new File("C:\Users\mjwag\OneDrive\cs151/salesList.txt"));
while (salesList.hasNext()) {
Scanner file = salesList;
file.nextLine();
String line = file.nextLine();
String[] lineArray = line.split(",");
int personID = Integer.parseInt(lineArray[0]);
int product = Integer.parseInt(lineArray[1]);
int amount = Integer.parseInt(lineArray[2]);
int [][] sales = new int[4][6];
sales[personID-1][product-1] += amount;
}
}
}
在数组中存储整数和双精度数的最简单方法是使用 Number
,它是 Integer
和 Double
的超类。例如:
Number[][] sales = new Number[4][6];
...
sales[0][0] = 1;
sales[0][1] = 4.5;
或者,正如您与教授讨论的那样,可以将双精度数转换为整数并丢失小数点后的数字。这可以按如下方式完成:
double val = 4.5;
int intVal = (int) val;
我要阅读文件并编制 运行 销售人员的总计,以及他们对每个产品的总计和每个产品的总计。我必须将所有这些存储在二维数组中(不允许使用列表)并以特定格式打印。
文本文件记录如下:
1,4,10.20
2,2,17.20
etc
etc
第1列是personID第2列是产品编号第3列是金额
我的代码尝试将每一行拆分为一个字符串,然后将每个值进一步拆分为一个索引,然后将其存储在一个二维数组中。我觉得很傻,但我遇到了转换错误。无论我做什么,我都无法以可接受的格式制作数组存储量。由于某种原因,我无法将数组创建为双精度数组。它 returns 在我尝试编译时终止。我的教授说一个整数应该可以,但我无法准确求和。
package HW1;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class salesList {
public static void main(String[] args) throws FileNotFoundException{
Scanner salesList;
salesList = new Scanner(new File("C:\Users\mjwag\OneDrive\cs151/salesList.txt"));
while (salesList.hasNext()) {
Scanner file = salesList;
file.nextLine();
String line = file.nextLine();
String[] lineArray = line.split(",");
int personID = Integer.parseInt(lineArray[0]);
int product = Integer.parseInt(lineArray[1]);
int amount = Integer.parseInt(lineArray[2]);
int [][] sales = new int[4][6];
sales[personID-1][product-1] += amount;
}
}
}
在数组中存储整数和双精度数的最简单方法是使用 Number
,它是 Integer
和 Double
的超类。例如:
Number[][] sales = new Number[4][6];
...
sales[0][0] = 1;
sales[0][1] = 4.5;
或者,正如您与教授讨论的那样,可以将双精度数转换为整数并丢失小数点后的数字。这可以按如下方式完成:
double val = 4.5;
int intVal = (int) val;