我如何将字符串数转换为int

时间:2011-02-27 18:18:09

标签: c#

我只想要数字。

string str_a = "a1bc2d23ghj2";
int in_b = convert.toint32(str_a); // doesn't works

我希望in_b的输出为:12232

6 个答案:

答案 0 :(得分:7)

string str_a = "a1bc2d23ghj2";
string str_digits_only = new String(str_a.Where(char.IsDigit).ToArray());
int in_b = Convert.ToInt32(str_digits_only);

答案 1 :(得分:2)

StringBuilder builder = new StringBuilder();
foreach (char c in str_a)
{
    if (Char.IsDigit(c))
    {
        builder.Append(c);
    }
}

int in_b = Int32.Parse(builder.ToString());

答案 2 :(得分:0)

它不起作用,因为输入字符串不是有效数字,还因为您必须使用Convert.ToInt32(string)int.Parse(string)

如果您只想从字符串中提取数字,可以使用LINQ:

string onlyNumbers = (from ch in str_a
                     where char.IsDigit(ch)
                     select ch.ToString()).Aggregate((a, b) => a + b);

int in_b = int.Parse(onlyNumbers);

答案 3 :(得分:0)

我的解决方案是检查字符串中字符的字符代码。选择所有数字并进行转换:

   var str_a = "a1bc2d23ghj2";
   var in_b = Convert.ToInt32(string.Join(string.Empty,str_a.Where(x => x >= 48 && x <= 57)));

答案 4 :(得分:0)

int num = Convert.ToInt(System.Text.Regex.Replace(stra, "[^0-9]", string.Empty));

答案 5 :(得分:-2)

查看tryparse方法。