如何验证 Int32.Parse() 的输入(无异常)



~注意~ 这个问题的目的是学术性的,答案必须使用 Int32.Parse((

问候

我想知道是否有办法使用 if() 或等效的东西(不使用异常("实现 Int32.Parse(( 抛出的异常"。完全和任何形式的(。

提前谢谢。技工

~EDIT1:另一种说法可能是:有没有办法确保 int32 的安全输入。Parse(( 不使用异常类?

~EDIT2:并不是我根本不希望抛出异常,正如@PeterDuniho的评论中指出的那样,我知道TryParse().我特别说我想使用Int32.Parse().

~EDIT3:表达我的问题的更好方法是:如何确保作为参数传递给Int32.Parse()的字符串不会导致异常?

~EDIT4:我不想使用TryParse()的原因是,如果它失败,程序将继续,而我希望如果输入(Int32.Parse()(形式不正确,它就会崩溃。

string stringValue = "123";
int intValue = 0;
bool check = int.TryParse(stringValue, out intValue);

如果检查为 true,则 Parse 正确完成,如果为 false,则字符串无法解析为 int。

您可以使用正则表达式来做到这一点。例如:

string text = "-124";
int num;
Regex intRegex = new Regex(@"^s*(+|-)?d+s*$");
if (intRegex.IsMatch(text))
    num = Int32.Parse(text);
else
    Console.WriteLine("Unfortunately, the program has crashed and burned.");

在我准备的大数据批次中,这个正则表达式的结果与TryParse相同。

如果你想要更具体的正则表达式,你可以在这里找到更多选项。

相关内容

最新更新