我有一个包含员工信息的文本文件。第一个单词是员工的姓氏,第二个单词是第一个名字。字符代码h或s告诉我他们是什么样的员工,有薪或小时。最后,字符代码后面的数字是小时工资(如果为小时工)或年薪(如果为受薪员工)。
Smith, John h 5.00
Potter, Harry s 10000
我想对这些信息做的是扫描文本文件,根据识别的字符代码自动创建新的受薪员工对象或小时员工对象。
这些是小时雇员对象的参数。
public HourlyEmployee(String first, String last, double wage)
这就是我想到的。
File input = new File("EmployeesIn.txt");
Scanner in = new Scanner(input);
while(in.hasNextLine()) {
int i = 1;
String line =(in.nextLine());
if (line.contains(" h ")) {
HourlyEmployee Employee1 = new HourlyEmployee(in.next(),in.next(),in.nextDouble());
System.out.println(Employee1);
这段代码的问题是,我从in.nextDouble()中得到一个InputMismatchException.
所以我编辑了我的代码,手动将工资分配为1,至少看看它是否正确分配了姓氏和名字,但它甚至没有正确分配。它使用错误的行来分配值,并将名字分配为姓氏,将姓氏分配为名字。
Harry, Potter, $1.0/hour
所以我的问题是,我如何正确地做到这一点?根据我提供的文本文件,我想用这些参数创建一个HourlyEmployee对象
HourlyEmployee Employee1 = new HourlyEmployee(Smith,John,5.00);
为什么只是加载文件并逐行读取?
由于您的文件结构相同,因此很容易解析/拆分每一行
public static String loadFile(String filePath){
try {
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(filePath);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine = null;
//Read File Line By Line
while ((strLine = br.readLine()) != null ) {
if(strLine.split("[ ]+").length > 3){
// do stuff here
}
}// end while
//Close the input stream
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return buff.toString();
}
两个明显的问题:
由于你是按顺序读文件的,所以你读入的第一个东西是姓氏;但是您的< code>HourlyEmployee需要的第一个参数是名字。其次,您第三次尝试读取文件时,将会读取“h”或“s”标志,而不是pay。解决方案:分别读入名字,然后调用函数。大概是这样的:
while(in.hasNextLine()) {
lastName = in.next();
firstName = in.next();
payType = in.next(); // read the 'h' or 's'
pay = in.nextDouble();
switch(payType) {
case 'h':
Employee1 = new HourlyEmployee(firstName, lastName, pay);
break;
case 's':
Employee1 = new SalariedEmployee(firstName, lastName, pay);
break;
default:
// warn about invalid format
}
System.out.println(Employee1);
}
您可能需要删除<code>lastName</code>变量中的逗号-不确定您的函数是否已经处理了该问题。
问题内容: 我是Python的新手,我搜索如何解析.txt文件。我的.txt文件是一个包含计算信息的名称列表,例如: myfile.txt var0 = 16 var1 = 1.12434E10 var2 = -1.923E-3 var3 = 920 如何读取值并将其放入python中? 问题答案: 我建议将值存储在字典中,而不是存储在单独的局部变量中: 现在以身份访问它们。如果名称都是有效的py
所以我在这方面做了一点工作,遇到了麻烦。当它开始处理时,它总是给我一个致命的错误<基本上,我想从互联网上读取一个文本文件,然后对其进行解析,这样我就可以开始分解它,并使用JSON解析器处理JSON数据。但是再往下一点(我已经完成了部分)。我只是在连接和下载数据方面遇到了问题。我只想读入文本文件,然后再次打印出来。谢谢你在这方面的帮助。 这就是它给我的 01-26 15:11:48.373 1958
问题内容: 我有一个包含以下行的文本文件: 每个“ |” 符号表示它有一列。我必须从“ |”内部的每一行中提取信息 迹象。当我尝试以下代码时: 它给了我: 如何正确解析? 问题答案: 试试这个:
我正在使用snmp4j开发snmp管理器。我需要读取MIB文本文件并生成相应的XML文件。是否有任何SNMP4j库可用于解析Mib文本文件并获取每个对象的数据。如果snmp4j不能解决我的问题,是否有其他类似的开源可用? 谢谢
我有这个文件要处理,我正试图找出如何将第二行作为不同的对象来读取。在这一行的末尾,最后一项是公交车的数量。第二行、第四行等应包含idBus和noOfBus,并用逗号分隔。 基于这些课程 我想要一个函数来处理CSV文件中所有公交车和大学线路的列表。它必须使用流API。我不知道这是否可能或如何进行。 当然,可以根据类进行更改,但保留变量,不添加任何额外内容。 我认为最方便的方法是浏览文件,根据两个班级
我无法理解为什么当我通过的文本符合格式时,我会得到DateTimeParseException错误。下面是导致该问题的代码: 奇怪的是。每当我查询用户一段时间(让我们以00:02:30为例),它就会完全按照我想要的方式运行。但是当我使用我的方法(从文本文件中提取时间)时,它会出现错误: 线程“main”java.time.format.DateTimeParseException中出现异常:无法分