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

C#如何仅读取控制台输入的首个整数值并判断手机号首字符

核心修改思路

不要直接将整行输入转为整数,先保留字符串格式取首字符再做校验,同时避免超长手机号转int溢出的问题。你原来注释的StreamReader相关逻辑完全不需要,直接操作字符串即可,无需额外调用IO流。


修改后完整代码

Console.WriteLine("enter your phone n0.");
// 先读取输入为字符串,做基础有效性校验
string phoneInput = Console.ReadLine()?.Trim() ?? string.Empty;
if (string.IsNullOrEmpty(phoneInput) || !char.IsDigit(phoneInput[0]))
{
    Console.WriteLine("输入的手机号格式无效");
    return; // 无效输入处理逻辑可根据自身需求调整
}
// 取首字符转成数字
int firstNum = int.Parse(phoneInput[0].ToString());
Console.WriteLine("\n\n\n\n");

if (firstNum == 3 || firstNum ==4 || firstNum ==5)
{
    // 原有业务逻辑,注意bred、startx、hoj、top变量需提前定义赋值
    for (int i = 0; i < bred; i++)
    {
        Console.SetCursorPosition(startx + i, hoj / 2);
        Console.Write(top);
    }
}

可选简化写法

如果用的是C# 9.0及以上版本,可以直接判断字符,省去数字转换步骤:

// 直接判断首字符即可,不需要转int
if (phoneInput[0] is '3' or '4' or '5')
{
    // 业务逻辑
}

额外注意事项

  • 手机号通常为11位纯数字,可根据需求自行补充长度校验、全字符数字校验等逻辑
  • 不要将完整手机号直接转int,11位数字已经超过int类型的最大存储上限,会直接触发转换报错

内容的提问来源于stack exchange,提问作者Coral

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:18:03