gpt4 book ai didi

java - 从文本文件创建二维数组

转载 作者:行者123 更新时间:2023-11-30 10:35:34 24 4
gpt4 key购买 nike

我在这个(我的第一个)学期末的类(class)中遇到了问题。所以我必须拿一个文本文件,其中包括姓名和一些数字,然后对每个人的数字进行一些计算。我试图创建一个带循环的二维数组,并将数字(保存为字符串)转换为 double 。问题是我不能使用 j = 3j = 4 的值进行计算,因为那是作业的另一半。

所以我需要一种方法来将 j = 0 和 1 的值存储为字符串,并将 j = 2、3 和 4 的值存储为 double 值——如果可能,最好存储在同一个数组中。

我的教授(他教的不多,记住)说了一些关于使用多种方法的事情。如果您查看以下几行:

double empPay = empHoursResult * empRateResult;

System.out.println(arr[3] * arr[4]);

这些都不起作用,因为我要么需要初始化 double (使它们 = 0),要么将 arr[j] 的值存储为字符串。

如何将 j > 1 的值仅存储为 double 值,并将 j = 0, 1 存储为字符串?任何建议表示赞赏。谢谢。

public static void main(String[] args) {

String[] textLine = new String[10];
int i = 0;
String empNumber;
String empHours;
String empRate;
double empNumberResult;
double empHoursResult;
double empRateResult;

System.out.println("Reading File ......");

String fileName = "datatext.txt";

try {

//Create object of FileReader
FileReader inputFile = new FileReader(fileName);

//Instantiate the BufferedReader Class
BufferedReader bufferReader = new BufferedReader(inputFile);

String line;

while ((line = bufferReader.readLine()) != null) {
textLine[i] = line;
i++;
}

for (int x = 0; x < i; x++) { //For loop of the rows, each employee.

String empInfo = textLine[x];

String[] arr = empInfo.split(" ");
System.out.println("\nEmployee: " + (x + 1));

for (int j = 0; j < arr.length; j++) {

if (j == 0) {
System.out.println("Last Name: " + arr[j]);

} else if (j == 1) {
System.out.println("First Name: " + arr[j]);
} else if (j == 2) {
empNumber = arr[j];
empNumberResult = Double.parseDouble(empNumber);
System.out.println("Employee Number: " + empNumberResult);
} else if (j == 3) {
empHours = arr[j];
empHoursResult = Double.parseDouble(empHours);
System.out.println("Total Hours Worked: " + empHoursResult);
} else if (j == 4) {
empRate = arr[j];
empRateResult = Double.parseDouble(empRate);
System.out.println("Employee Hourly Rate: " + empRateResult); // Read above line ^^.
}
}
double empPay = empHoursResult * empRateResult;
System.out.println(arr[3] * arr[4]);
/*
* Here is where I want the system to print out calculations from below.
* The calculatePay method must be somewhere in the first 'for loop' because I need it
* to calculate pay for all employess, x.
*/
}

bufferReader.close();
} catch (Exception e) {
System.out.println("Error while reading file line by line:" + e.getMessage());
}
}

public static void calculatePay(double empHoursResult, double empRateResult) {

double empNormalPay;
double empOvertimePay;
double empOvertimeHours;
double empTotalPay;

if (empHoursResult > 40) {
empNormalPay = 40 * empRateResult;
empOvertimeHours = 40 - empHoursResult;
empOvertimePay = empOvertimeHours * 1.5;
empTotalPay = empNormalPay = empOvertimePay;
}
}

最佳答案

您的代码似乎与所有这些 for 循环相当冗余我在下面包含了一些伪代码,您应该可以从中重新编写您的程序,因为我不应该解决您的作业。

while(line = readline){
String[] data = line.split(" ");

String a = data[0];
String b = data[1];
double c = Double.parseDouble(data[2]);
double d = Double.parseDoubledata([3]);
double e = Double.parseDoubledata([4]);
}

这是否解决了问题,还是我没有看到您被困在哪里?

编辑
看到 travis post 我知道你的问题可能是将两者都存储在一个数组中。这确实是不可能的,使用两个数组应该可以解决你的问题。

关于java - 从文本文件创建二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41078739/

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