非常新的Java,我有一个问题
我收到了一个文本文件,并要求找到收入最高的员工,并打印出他们的信息(fName,Lname,ID)
文本文件是这样的:
Date of birth fName lName wage hr work emp ID
12/03/1929 Detzk Fyshe 37 49 07036310484
04/17/1930 Cauus Walden 38 52 63612537553
07/12/1930 Barth Harling 43 72 42101524036
07/16/1930 Bartl Barnhill 43 62 48621748867
我设法找到最高工资。但不知道如何打印信息
到目前为止我的代码:
public static void main(String[] args) {
File inFile = new File ("dataSet.txt");
ArrayList <String> inData = new ArrayList <String>();
String strline;
try
{
FileInputStream fstream = new FileInputStream(inFile);
BufferedReader br = new BufferedReader (new InputStreamReader (fstream));
while ((strline = br.readLine()) != null)
{
strline = strline.trim();
if ((strline.length()!=0)) inData.add(strline);
}
} catch (Exception e) {
System.err.println("Error CANNOT FIND FILE!");
}
// Max wage finder *start*
int maxWage=0;
for (int i=0; i<inData.size(); i++){
String [] word = inData.get(i).split(" ");
int wage=Integer.parseInt (word[3]);
int hrWork=Integer.parseInt (word[4]);
int earn = wage*hrWork;
if (earn>maxWage){
maxWage=earn;
}
}
System.out.println("Max Wage in $:"+maxWage);
//max wage finder *end*
答案 0 :(得分:0)
您可以添加int maxWageOwner
,
它会跟踪列表中最终maxWage
来自哪个项目。
因此,在if (earn > maxWage) {...}
内添加maxWageOwner = i;
,
并在for循环之前初始化maxWageOwner
。
然后打印信息只需访问inData.get(maxWageOwner)
。
答案 1 :(得分:0)
如果您正在阅读员工数据,那么针对该问题的面向对象解决方案是创建一个强类型的Employee
类(日期为Date
s,整数为{ {1}} s)为文件内容建模的属性。
除了存储每个int
的实际数据的实例变量之外,您可能希望覆盖类中的Employee
方法,以便可以轻松输出员工信息,例如到toString()
。此外,你需要一个吸气剂来获得&#34;总薪水&#34;员工(使用System.out
计算),以便可以在外部比较两名员工的工资,例如:通过Comparator。
总而言之,相关部分的代码可能如下所示:
wage * hrWork