我需要阅读用户的输入工资,然后打印员工的姓名和姓氏 (姓氏必须是大写字母),使用文本文件中的数字格式对象,工资超过指定值。 如果输入的工资小于100,则打印消息''工资必须大于100“,如果它大于文件中的工资,则打印消息”没有员工有这个工资。“
文本文件名是employee.text包含员工姓氏和姓氏,City, 部门,工资和日期
Carl Johnson Paris Production 900 20/07/2000
Wiley Cyrus伊斯坦布尔采购800 21/05/2005
哈利波特伦敦会计780 30/05/2001
Bruce Wayne Gotham质量450 05/08/2007
这是我的代码到目前为止我没有得到输出?
Scanner scanFile = new Scanner(new File("Employee.txt"));
NumberFormat fmt = NumberFormat.getCurrencyInstance(Locale.US);
Scanner scan = new Scanner(System.in);
System.out.println("Enter salary: ");
int salary = scan.nextInt();
if(salary < 100)
System.out.println("The salary must be bigger than 100");
else
if(salary > 900)
{
System.out.println("There is no employee has this salary.");
}
while(scanFile.hasNextInt())
{
int sal = scanFile.nextInt();
String code = scanFile.next();
if(sal >= salary)
System.out.println(code + fmt.format(sal));
}
答案 0 :(得分:0)
在您必须检查hasNextline()而不是hasNextInt()时:
while (scanFile.hasNextLine()) {
在你的int sal = scanFile.nextInt();你会在行中找到int - 在这个例子中你可以这样做:
String nextLine = scanFile.nextLine();
int sal = Integer.parseInt(nextLine.substring(nextLine.lastIndexOf(" ")-3, nextLine.lastIndexOf(" ")));
但是你必须进行实验,所以它适用于所有情况。