~注意~ 这个问题的目的是学术性的,答案必须使用 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
相同。
如果你想要更具体的正则表达式,你可以在这里找到更多选项。