如何在C#中将字符串转换为整数

时间:2010-02-26 19:57:19

标签: c# .net string int type-conversion

如何在C#中将字符串转换为整数?

12 个答案:

答案 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);