如何在C#中将字符串转换为整数
Posted
技术标签:
【中文标题】如何在C#中将字符串转换为整数【英文标题】:How to convert string to integer in C# 【发布时间】:2011-01-21 14:41:44 【问题描述】:如何在 C# 中将字符串转换为整数?
【问题讨论】:
***.com/questions/1019793/…的可能重复 【参考方案1】:如果您确定它会正确解析,请使用
int.Parse(string)
如果不是,请使用
int i;
bool success = int.TryParse(string, out i);
注意!在下面的例子中,i
将等于 0,而不是 TryParse
之后的 10。
int i = 10;
bool failure = int.TryParse("asdf", out i);
这是因为 TryParse
使用 out 参数,而不是 ref 参数。
【讨论】:
@sslaitha,谢谢。如果它充分回答了您的问题,请记得将其标记为答案。 请注意,如果你有 int i = 10;并使用 int.TryParse("asdf", out i);我将包含 0 而不是 10 !!!这是因为 TryParse 使用 out 变量,而不是 ref。 “警告”适用于第三个示例 - 而不是第二个示例。让我有点困惑,因为我希望“this”指的是上面的例子,而不是下面的例子。【参考方案2】:int myInt = System.Convert.ToInt32(myString);
正如其他几个人提到的,您也可以使用int.Parse()
和int.TryParse()
。
如果您确定string
将始终是int
:
int myInt = int.Parse(myString);
如果您想先检查string
是否真的是int
:
int myInt;
bool isValid = int.TryParse(myString, out myInt); // the out keyword allows the method to essentially "return" a second value
if (isValid)
int plusOne = myInt + 1;
【讨论】:
【参考方案3】:int a = int.Parse(myString);
或者更好的是,查看int.TryParse(string)
【讨论】:
【参考方案4】:string varString = "15";
int i = int.Parse(varString);
或
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
更安全,因为如果您在varString
中添加其他内容(例如“fsfdsfs”),您会遇到异常。通过使用int.TryParse
,当字符串无法转换为int时,它将返回0
。
【讨论】:
【参考方案5】:执行以下操作:
var result = Int32.Parse(str);
【讨论】:
【参考方案6】:如果您确定字符串中有“实数”数字,或者您对可能出现的任何异常情况感到满意,请使用它。
string s="4";
int a=int.Parse(s);
要对流程进行更多控制,请使用
string s="maybe 4";
int a;
if (int.TryParse(s, out a))
// it's int;
else
// it's no int, and there's no exception;
【讨论】:
【参考方案7】:4 techniques are benchmarked here.
最快的方法竟然是:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
"s" 是您要转换为 int 的字符串。此代码假定您在转换期间不会有任何异常。因此,如果您知道您的字符串数据将始终是某种 int 值,那么上面的代码是获得纯速度的最佳方式。
最后,“y”将具有您的 int 值。
【讨论】:
【参考方案8】:int i;
string whatever;
//Best since no exception raised
int.TryParse(whatever, out i);
//Better use try catch on this one
i = Convert.ToInt32(whatever);
【讨论】:
【参考方案9】:bool result = Int32.TryParse(someString, out someNumeric)
此方法将尝试将someString
转换为someNumeric
,如果转换成功则返回result
,如果转换成功则返回true
,如果转换失败则返回false
。请注意,如果转换失败,则此方法不会像 Int32.Parse
方法那样抛出异常,而是为 someNumeric
返回零。
更多信息,你可以在这里阅读:
https://msdn.microsoft.com/en-us/library/f02979c7(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2 &How to convert string to integer in C#
【讨论】:
【参考方案10】:int i;
string result = Something;
i = Convert.ToInt32(result);
【讨论】:
【参考方案11】:你可以使用任何一个,
int i = Convert.ToInt32(myString);
或
int i =int.Parse(myString);
【讨论】:
【参考方案12】:class MyMath
public dynamic Sum(dynamic x, dynamic y)
return (x+y);
class Demo
static void Main(string[] args)
MyMath d = new MyMath();
Console.WriteLine(d.Sum(23.2, 32.2));
【讨论】:
以上是关于如何在C#中将字符串转换为整数的主要内容,如果未能解决你的问题,请参考以下文章