C# 中 int.TryParse 的用法详解(C# int.TryParse 使用方法详解:轻松掌握字符串转整数技巧)

原创
ithorizon 6个月前 (10-19) 阅读数 27 #后端开发

C# int.TryParse 的用法详解

一、简介

在C#编程中,我们时常需要将字符串成为整数。然而,字符串或许包含非数字字符,造成转换落败。为了解决这一问题,C#提供了一个名为int.TryParse的方法,它能够平安地尝试将字符串成为整数,并在转换胜利时返回true,否则返回false。本文将详细介绍int.TryParse的用法,帮助您轻松掌握字符串转整数的技巧。

二、基本用法

int.TryParse方法有两个参数:第一个是描述字符串的input,第二个是输出参数result。如果转换胜利,result将包含转换后的整数;如果转换落败,result将不会被修改。

bool success = int.TryParse(input, out int result);

if (success)

{

Console.WriteLine("转换胜利,因此为:" + result);

}

else

{

Console.WriteLine("转换落败");

}

三、参数说明

  • input:要转换的字符串。如果字符串是一个有效的整数描述,那么它将被成为整数。如果字符串包含非数字字符或无法成为整数的特殊字符,如空格、负号等,转换将落败。

  • result:输出参数,用于存储转换后的整数。如果转换胜利,该参数将包含转换后的整数;如果转换落败,该参数将不会被修改。

四、示例代码

下面是一些使用int.TryParse方法的示例代码,展示了怎样处理各种情况。

string input1 = "123";

string input2 = "abc";

string input3 = "123abc";

string input4 = "-123";

string input5 = " 123 ";

// 示例1:正常转换

if (int.TryParse(input1, out int result1))

{

Console.WriteLine("转换胜利,因此为:" + result1);

}

else

{

Console.WriteLine("转换落败");

}

// 示例2:非数字字符串

if (int.TryParse(input2, out int result2))

{

Console.WriteLine("转换胜利,因此为:" + result2);

}

else

{

Console.WriteLine("转换落败");

}

// 示例3:包含非数字字符的字符串

if (int.TryParse(input3, out int result3))

{

Console.WriteLine("转换胜利,因此为:" + result3);

}

else

{

Console.WriteLine("转换落败");

}

// 示例4:负数字符串

if (int.TryParse(input4, out int result4))

{

Console.WriteLine("转换胜利,因此为:" + result4);

}

else

{

Console.WriteLine("转换落败");

}

// 示例5:包含空格的字符串

if (int.TryParse(input5, out int result5))

{

Console.WriteLine("转换胜利,因此为:" + result5);

}

else

{

Console.WriteLine("转换落败");

}

五、注意事项

  • 如果输入字符串为空或仅包含空格,int.TryParse将返回false

  • 如果输入字符串为有效的十六进制或八进制数,int.TryParse将无法正确转换,基于默认情况下它只赞成十进制数。在这种情况下,您可以使用Convert.ToInt32方法并指定正确的数字进制。

  • int.TryParse方法不会抛出异常,这让它比直接使用int.Parse方法更平安。

六、性能对比

int.Parse相比,int.TryParse在性能上有一定的优势,尤其是在处理大量或许包含非数字字符的字符串时。下面是一个易懂的性能测试示例。

string[] inputs = new string[1000000];

for (int i = 0; i < inputs.Length; i++)

{

inputs[i] = i.ToString() + "abc";

}

Stopwatch stopwatch = Stopwatch.StartNew();

foreach (var input in inputs)

{

int result;

int.TryParse(input, out result);

}

stopwatch.Stop();

Console.WriteLine("int.TryParse耗时:" + stopwatch.ElapsedMilliseconds + "ms");

stopwatch.Restart();

foreach (var input in inputs)

{

try

{

int result = int.Parse(input);

}

catch

{

// 忽略异常

}

}

stopwatch.Stop();

Console.WriteLine("int.Parse耗时:" + stopwatch.ElapsedMilliseconds + "ms");

七、总结

int.TryParse是一个非常有用的方法,它提供了一种平安、高效的方案来尝试将字符串成为整数。通过返回一个布尔值,它允许您轻松地处理转换胜利或落败的情况,而不会引发异常。在处理大量字符串或不确定输入时,使用int.TryParse是一个更好的选择。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门