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

为何字符串单个字符转Int32结果异常?从ReadLine转换却正常?

问题原因解析

你的问题核心是**Convert.ToInt32处理char类型和string类型的逻辑完全不同**:

  1. 代码里的str[2]是char类型的字符'4',当调用Convert.ToInt32(char)时,这个方法返回的是该字符对应的Unicode码点(ASCII字符等价于ASCII值),而字符'4'的Unicode码点就是52,所以输出52。

  2. 用Console.ReadLine()输入时,你得到的是string类型的内容(比如输入"4"得到字符串"4"),此时调用Convert.ToInt32(string),方法会将字符串解析成对应的整数数值,自然得到4。

如果要从字符'4'得到对应的整数4,有两种简单方法:

  • 利用字符编码的规律,减去字符'0'的码值:
    int secondNumber = str[2] - '0';
    
  • 使用char.GetNumericValue方法:
    int secondNumber = (int)char.GetNumericValue(str[2]);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:54:53