所以我从文件中读取信息,得到一个类型不匹配错误。我通过调试器运行了它,但我不确定是什么导致了它——因为它正在读取正确的数字(在本例中为2000),但它似乎不认为它是整数?
我的代码如下:
public class JobSalaries {
public static void main(String[] args) throws Exception {
final int ARRAY_SIZE = 10;
Employee[] employees2014, employees2015;
int counter2014, counter2015;
File payroll;
payroll = new File("jobpayroll.txt");
employees2014 = new Employee[ARRAY_SIZE];
employees2015 = new Employee[ARRAY_SIZE];
Scanner scan = new Scanner(payroll).useDelimiter(",| ");
counter2014 = 0;
counter2015 = 0;
while(scan.hasNext()) {
int year = scan.nextInt();
String classification = scan.next();
String lname = scan.next();
String fname = scan.next();
int monthlysalary = scan.nextInt();
if(year == 2014 && classification.equals("Employee")) {
String name = fname + " " + lname;
Employee tempemployee = new Employee(name,monthlysalary);
employees2014[counter2014] = tempemployee;
}
}
}
}
从这些信息中可以看出:
2014年雇员史密斯,约翰2000
2015推销员琼斯,比尔3000 100000
2014执行布什,乔治5000 55
2014年员工曼,莎拉4000
2015年销售员Marco,约旦5300 440000
2014年执行官兰斯,汤姆1000 60
2014年雇员戈尔,弗兰克7000
2015年销售员麦迪逊,米歇尔8000 150000
2014执行贝里,阿什利7600 56
(为了简单起见,我的错误是:int monthly工资=scan.nextInt();)
昨天在这里讨论过类似的问题。我假设这篇文章中讨论的根本原因。请看看以下变化:
public class JobSalaries {
public static void main(String[] args) throws Exception {
final int ARRAY_SIZE = 10;
Employee[] employees2014, employees2015;
int counter2014, counter2015;
File payroll;
payroll = new File("jobpayroll.txt");
employees2014 = new Employee[ARRAY_SIZE];
employees2015 = new Employee[ARRAY_SIZE];
Scanner scan = new Scanner(payroll).useDelimiter(",| ");
counter2014 = 0;
counter2015 = 0;
while(scan.hasNext()) {
int year = scan.nextInt();
String classification = scan.next();
String lname = scan.next();
String fname = scan.next();
// int monthlysalary = scan.nextInt();
int monthlysalary = Integer.parseInt(scan.nextLine());
if(year == 2014 && classification.equals("Employee")) {
String name = fname + " " + lname;
Employee tempemployee = new Employee(name,monthlysalary);
employees2014[counter2014] = tempemployee;
}
}
而不是使用scan。netxtInt()
尝试使用扫描。nextLine()
并将其解析为整数。
经过一番脑力激荡后,我终于找到了答案——问题是第一行后面有一个新行(“从技术上讲”这是一个返回),扫描正在读取,无法将其解析为整数,所以我为“\r”添加了另一个分隔符,允许我将其作为整数读取,问题解决了!
问题是,您想跳转到下一行,而不完成某些行的令牌。举个例子
int monthlysalary=scan。nextInt()
结果:
2015 Salesman Jones, Bill 3000 100000
^
monthlysalary
然后
int年=scan.nextInt();
会导致:
2015 Salesman Jones, Bill 3000 100000
^
year
我有一个带有8个JCombobox和文本字段的Jframe...当我按下提交按钮时得到了数据类型不匹配错误 如何解决这个错误?
我试图从使用vba的SQL查询中获取一些数据,但当我尝试运行代码时,它会给我一个类型不匹配错误。有人能帮忙吗
当我试图使用@DataProvider类将excel表中的几个值传递给page objects类中的几个方法时,我遇到了“参数类型不匹配”错误。这些方法依次在@Test类中调用。你能在这个问题上帮助我吗。下文已提到该守则。 数据提供者 测试类 错误: 失败:eCommerceProduct(2.0,“Magic Mouse”,1.0,“$150”,“$150”)java.lang.IllegalA
我正在使用此代码并获得类型不匹配的错误,运行时错误'13'错误在下面标记的行中,而具体错误是由于其中条件()在查询...
在jaxb上下文转换技术的帮助下,我将java对象转换为xml字符串。当我试着以主类的形式运行程序时。它将其转换为xml字符串,但当我从project中的不同类调用该方法时。它抛出参数不匹配异常。我正在使用tomcat 7和jdk 6,并在eclipse中运行代码。请查找下面的马歇尔片段。 请指导为什么它失败时,我运行它到一个项目。