如何在C#中将字符串转换为整数?
答案 0 :(得分:134)
如果您确定它会正确解析,请使用
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 参数。
答案 1 :(得分:22)
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;
}
答案 2 :(得分:9)
int a = int.Parse(myString);
或更好,请查看int.TryParse(string)
答案 3 :(得分:6)
string varString = "15";
int i = int.Parse(varString);
或
int varI;
string varString = "15";
int.TryParse(varString, out varI);
int.TryParse
更安全,因为如果你在varString
中添加其他东西(例如“fsfdsfs”),你会得到一个例外。当字符串无法转换为int时使用int.TryParse
,它将返回0
。
答案 4 :(得分:5)
如果您确定字符串中有“真实”数字,或者您对可能出现的任何异常感到满意,请使用此字符。
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;
}
答案 5 :(得分:5)
做类似的事情:
var result = Int32.Parse(str);
答案 6 :(得分:3)
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);
答案 7 :(得分:2)
4 techniques are benchmarked here.
最快的方式如下:
y = 0;
for (int i = 0; i < s.Length; i++)
y = y * 10 + (s[i] - '0');
&#34; S&#34;是您想要转换为int的字符串。此代码假定您在转换过程中没有任何异常。因此,如果您知道您的字符串数据将始终是某种int值,则上述代码是获得纯粹速度的最佳方法。
最后,&#34; y&#34;将具有你的int值。
答案 8 :(得分:1)
bool result = Int32.TryParse(someString,out someNumeric)
此方法会尝试将您的string someString
转换为int someNumeric
,并将boolean 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#
答案 9 :(得分:0)
int i;
string result = Something;
i = Convert.ToInt32(result);
答案 10 :(得分:0)
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));
}
}
答案 11 :(得分:0)
您可以使用
int i = Convert.ToInt32(myString);
或
int i =int.Parse(myString);