You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何实现员工信息输入格式校验并提示错误?

解决员工信息输入格式验证问题

你的核心问题是没有提前验证输入的格式是否符合要求,直接强行拆分和转换会导致程序崩溃。我们可以通过分步验证的方式,在出现格式问题时给出明确提示,避免异常。

具体处理步骤:

  • 先检查输入是否为空或全是空白字符
  • 用逗号拆分输入后,确认是否刚好分成2个有效部分
  • 验证第一部分能否转换成合法整数(员工级别)
  • 确认第二部分(员工姓名)不为空
  • 只有所有验证通过后,再执行职位判断;任何一步失败则直接显示错误提示

修改后的完整代码:

Console.Clear();
Console.WriteLine(@"请输入你的(员工级别, 员工姓名)。");

string? readResult = Console.ReadLine();
string title = "";

// 检查输入是否为空或全空白
if (string.IsNullOrWhiteSpace(readResult))
{
    Console.WriteLine("错误:输入不能为空,请按(员工级别, 员工姓名)格式输入");
    return;
}

string info = readResult;
// 拆分输入并检查是否为两个部分
var employeeInfo = info.Split(',');
if (employeeInfo.Length != 2)
{
    Console.WriteLine("错误:输入格式不正确,请用逗号分隔员工级别和姓名");
    return;
}

// 验证员工级别是否为有效整数
string levelStr = employeeInfo[0].Trim();
if (!int.TryParse(levelStr, out int employeeLevel))
{
    Console.WriteLine("错误:员工级别必须是整数,请重新输入");
    return;
}

// 验证员工姓名是否不为空
string employeeName = employeeInfo[1].Trim();
if (string.IsNullOrWhiteSpace(employeeName))
{
    Console.WriteLine("错误:员工姓名不能为空,请重新输入");
    return;
}

// 格式验证通过,执行职位判断
switch (employeeLevel)
{
    case > 400:
        title = "高级经理";
        break;
    case > 300:
        title = "经理";
        break;
    case > 200:
        title = "高级专员";
        break;
    case > 100:
        title = "初级专员";
        break;
    default:
        title = "专员";
        break;
}

Console.WriteLine($"{employeeName},{title}");

关键代码说明:

  • string.IsNullOrWhiteSpace:比IsNullOrEmpty更严格,能识别输入全是空格的无效情况
  • Split(',')后检查数组长度:确保输入有且仅有一个逗号,拆分出两个内容
  • int.TryParse:安全转换整数,失败时返回false不会抛出异常,同时把成功结果存入变量
  • Trim():去除内容前后空格,允许用户输入带空格的格式(比如"300, 张三"),提升体验
  • 每步验证失败后用return终止程序,避免后续错误代码执行

内容的提问来源于stack exchange,提问作者Mónica Alípio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:23:09