我有一个文件,上面写着
办公室1 3. 39 7 39 7 39 6.5 办公室2 2 19 8 19 8
这显示了它是哪个办公室,下一个数字是该办公室的经理人数,然后是每项工作的小时数,然后是他们每周的收入。
我正在尝试创建一个循环,这样我的java文件就可以读取小时数,然后乘以小时费率,然后将其保存为双倍,然后移动到下一个办公室,然后在以后的程序中使用双数,然后当它到达我知道如何从文件中读取的最后一个办公室时,循环就会结束,我只是很难得到一个循环,它可以完成我上面指定的任务。
任何帮助都将不胜感激,非常感谢!
编辑.
public static void main(String[] args) throws FileNotFoundException
{
Scanner inFile = new Scanner(new FileReader("ExternalData.txt"));
String name;
double employees;
double OfficeRate;
double OfficeHours;
double OfficeRate2;
double OfficeHours2;
double OfficeRate3;
double OfficeHours3;
double OfficeRate4;
double OfficeHours4;
name = inFile.nextLine ();
employees = inFile.nextDouble();
OfficeRate = inFile.nextDouble();
OfficeHours = inFile.nextDouble();
OfficeRate2 = inFile.nextDouble();
OfficeHours2 = inFile.nextDouble();
OfficeRate3 = inFile.nextDouble();
OfficeHours3 = inFile.nextDouble();
OfficeRate4 = inFile.nextDouble();
OfficeHours4 = inFile.nextDouble();
double Employee1 = OfficeRate * OfficeHours;
double Employee2 = OfficeRate2 * OfficeHours2;
double Employee3 = OfficeRate3 * OfficeHours3;
double Employee4 = OfficeRate4 * OfficeHours4;
double weeklypay = Employee1 + Employee2 + Employee3 + Employee4;这样做不会让我弄错,但是它应该比它应该长的更好?
发布于 2013-11-27 21:14:43
很抱歉迟了回复,我已经为你写了完整的代码,所以请理解这是如何完成的。
无论如何,如果文件包含数百个office条目,则当前的操作方式是无效的。
只需确保您有完整的文件内容,如您在Post中所示。如果缺少了什么,那么下面的代码可能会得到崩溃,或者给出意外的结果。
下面是您完成以下要求的代码。在这种情况下,您将无法从文件中保存任何数据,因为您不能使用Arrays。如果您可以使用ArrayList,那么就可以使用它来存储文件数据。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ScannerReadFile {
public static void main(String[] args) {
// Location of file to read
File file = new File("Your File Path");
try {
Scanner scanner = new Scanner(file);
scanner.useDelimiter("\\s+");
String line;
String office = null;
while (scanner.hasNext()) {
line = scanner.next();
if (line.equalsIgnoreCase("Office")) {
office = line + scanner.next();
// System.out.println(office);
continue;
} else {
int empCount = Integer.parseInt(line);
double weeklyPay = 0.0;
for (int i = 0; i < empCount; i++) {
double empPay = Double.parseDouble(scanner.next())
* Double.parseDouble(scanner.next());
System.out.println("Employee pay: " + empPay);
weeklyPay += empPay;
}
System.out.println("All Employee pay: " + weeklyPay
+ " for " + office);
}
}
scanner.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}如果你有什么问题告诉我。祝好运。
https://stackoverflow.com/questions/20227937
复制相似问题