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

VB.NET如何将英文数字字符串“One”转换为对应的整数1

报错原因

Int32.Parse()和Convert.ToInt32()仅支持转换阿拉伯数字格式的字符串(例如"1"),无法直接识别英文数字单词"One",因此触发格式错误异常。如果你的输入预期本应为阿拉伯数字字符串,可先检查numbers(index)取到的实际值是否存在前后空格、特殊字符等不符合数字格式的内容。

实现方案

场景1:需要转换英文数字单词为对应整数

如果你的需求就是将英文拼写的数字转为整数,最简便且性能可控的方式是预定义映射字典实现转换,可根据自己的业务范围扩展映射内容:

// 预定义英文数字与整数的映射,忽略大小写匹配
var numberMap = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase)
{
    {"Zero", 0},
    {"One", 1},
    {"Two", 2},
    // 按需扩展更多数字、单位词的映射
};

string inputStr = numbers(index).Trim();
if (numberMap.TryGetValue(inputStr, out int BeginningValue))
{
    // 转换成功,直接使用BeginningValue即可
}
else
{
    // 自定义无法识别输入的处理逻辑
}

如果需要处理"Twenty One"、"One Hundred"这类组合式的英文数字,可在映射字典基础上补充单位词(Hundred、Thousand等)的识别逻辑,拆分单词后叠加计算即可得到最终数值。

场景2:输入预期为阿拉伯数字字符串

如果你的业务预期numbers(index)取到的应该是类似"1"的阿拉伯数字字符串,可先对输入做清洗后再转换:

// 先去除前后空格、特殊符号后再做转换
BeginningValue = Int32.Parse(numbers(index).Trim());
// 也可使用TryParse避免抛出异常
if (Int32.TryParse(numbers(index).Trim(), out int BeginningValue))
{
    // 转换成功逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:12:01