0

我正在寻找以下字符串中的整数值:

"值="5412304756756756756756792114343986"

如何使用 C# 执行此操作?

4

5 回答 5

4

您可以使用正则表达式在字符串中查找数字:

var resultString = Regex.Match(subjectString, @"\d+").Value;

对于负值:

var resultString = Regex.Match(yourString, @"(|-)\d+").Value;
于 2012-11-12T11:33:32.847 回答
2

你可以找等号...

string yourString = "value=5412304756756756756756792114343986";
string integerPart = yourString.Split('=')[1];
于 2012-11-12T11:32:45.923 回答
2

您可以使用char.IsDigi t 之类的东西。

string str = "value=5412304756756756756756792114343986";
List<char> justDigits = new List<char>();
foreach(char c in str)
{
    if (char.IsDigit(c))
        justDigits.Add(c);
}

string intValues = new string(justDigits.ToArray());

或更短的版本

string intValues = new string(str.Where(char.IsDigit).ToArray());
于 2012-11-12T11:35:46.613 回答
2

您可以使用Regex

int IntVal = Int32.Parse(Regex.Match(yourString, @"(|-)\d+").Value);

这也将匹配负数。您还可以遍历字符串中的每个字符并检查 id 它们是数字但不是真正理想的解决方案,因为它可能是一个瓶颈。

编辑:在您输入的数字大于长。对于这样的数字,您可以使用BigInteger,从框架 4.0 开始

于 2012-11-12T11:37:30.267 回答
1
        Match match = new Regex("[0-9]+").Match("value=\"5412304756756756756756792114343986\"");
        while(match.Success)
        {
            // Do something
            match = match.NextMatch();
        }
于 2012-11-12T11:34:50.847 回答