如何将带有字母的字符串转换为int c#

how to convert a string with letters to int c#

这是我的问题:

输入:s = "4193 with words" 输出:4193

我这样试过,但是不行

        int a;
         bool  tf =  int.TryParse(s,out a);
        if(tf == true)
        {
            return a;
        }
        return 0;

我想你搜索的是这样的东西?

        string input = "1234 words";
        var outputnumber = Convert.ToInt32(Regex.Match(input, @"\d+").Value);

您可以使用它从字符串中仅提取数字字符:

string numStr = new String(s.Where(Char.IsDigit).ToArray());

然后使用您现有的代码,但参考 numStr:

int a;
bool  tf =  int.TryParse(numStr,out a);
if (tf == true)
{
   return a;
}
return 0;

请注意,如果您想支持负整数,则需要相应地调整第一部分(提取相关字符)。