在C#中将字符串转换为整数并测试是否成功

41
如何检查一个字符串是否可以转换为一个整数
假设我们有像"House","50","Dog","45.99"这样的数据,我想知道是否应该只使用字符串还是使用解析后的整数值。
在JavaScript中我们有一个叫做parseInt()的函数。如果无法解析字符串,它将返回NaN
4个回答

77

Int32.TryParse(String, Int32) - http://msdn.microsoft.com/en-us/library/f02979c7.aspx

的意思是尝试将字符串转换为32位整数。如果转换成功,返回true并将转换后的值存储在第二个参数中;否则返回false。这个方法非常有用,因为它可以避免在转换失败时抛出异常。
  bool result = Int32.TryParse(value, out number);
  if (result)
  {
     Console.WriteLine("Converted '{0}' to {1}.", value, number);         
  }

我一直在编辑它,所以任何错误可能已经被纠正了。 - Johnno Nolan
1
非常好,它会返回一个值来指示转换是否成功。谢谢! - Robin Rodricks
2
+1 我喜欢这个解决方案,但如果将其直接嵌入到if语句中,它可能会更加简洁。 - BenAlabaster

13

你能否将代码更加优雅,直接在 if 语句中运行 tryparse 函数呢?

类似这样:

if (Int32.TryParse(value, out number))     
  Console.WriteLine("Converted '{0}' to {1}.", value, number);

5

Int.TryParse


2

在搜索结果中找到了这个链接:如何判断一个字符串是否为数字?

之所以加上这一段是因为之前看到的回答没有使用说明:

int n;
bool isNumeric = int.TryParse("123", out n);

这里的"123"可以是字符串s = "123"之类的东西,OP正在测试它,如果发现是数字,n将会有一个值(123)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接