java使用异常捕获机制完成下述IO操作 编写程序要求下面的类实现功能 添加新员工 要求用户输入一个员工信息格式如下 jackson25男50002008-12-22 用户输入后需要做下述验证 要求用户名长度在1-20个字符之间且必须是英文 年龄在0-100之间的整数 性别只能是男或女 当发现用户输入有不符合
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class AddEmployee {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean isValid = false;
while (!isValid) {
System.out.println("请输入员工信息(格式:姓名,年龄,性别,薪水,入职日期),用逗号分隔:");
String input = scanner.nextLine();
String[] infos = input.split(",");
try {
// 验证姓名
String name = infos[0].trim();
if (name.length() < 1 || name.length() > 20 || !name.matches("[a-zA-Z]+")) {
throw new IllegalArgumentException("姓名不符合要求(1-20个英文字符)");
}
// 验证年龄
int age = Integer.parseInt(infos[1].trim());
if (age < 0 || age > 100) {
throw new IllegalArgumentException("年龄不符合要求(0-100之间的整数)");
}
// 验证性别
String gender = infos[2].trim();
if (!gender.equals("男") && !gender.equals("女")) {
throw new IllegalArgumentException("性别不符合要求(只能是“男”或“女”)");
}
// 验证薪水
double salary = Double.parseDouble(infos[3].trim());
// 验证入职日期
String hireDate = infos[4].trim();
// 所有输入都符合要求,可以添加员工
String employee = name + "," + age + "," + gender + "," + salary + "," + hireDate;
BufferedWriter writer = new BufferedWriter(new FileWriter("emp.txt", true));
writer.write(employee);
writer.newLine();
writer.close();
System.out.println("员工信息已添加成功!");
isValid = true;
} catch (NumberFormatException e) {
System.out.println("年龄或薪水格式不正确!");
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println("写入文件出错!");
}
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/heJF 著作权归作者所有。请勿转载和采集!