C# 在字符串中查找整数值

C# 在字符串中查找整数值,c#,C#,我希望在以下字符串中找到整数值: “value=“5412304756756756756756792114343986” 如何使用C#?查找等号 string yourString = "value=5412304756756756756756792114343986"; string integerPart = yourString.Split('=')[1]; 可以使用正则表达式在字符串中查找数字: var resultString = Regex.Match(subjectString,

我希望在以下字符串中找到整数值:

“value=“5412304756756756756756792114343986”


如何使用C#?

查找等号

string yourString = "value=5412304756756756756756792114343986";
string integerPart = yourString.Split('=')[1];

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

var resultString = Regex.Match(subjectString, @"\d+").Value;
对于负值:

var resultString = Regex.Match(yourString, @"(|-)\d+").Value;
你可以用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());

您可以使用
Regex

int IntVal = Int32.Parse(Regex.Match(yourString, @"(|-)\d+").Value);
这也将匹配负数。您还可以迭代字符串中的每个字符并检查id它们是数字的,但不是真正理想的解决方案,因为这可能是一个瓶颈


编辑:您输入的数字大于long。对于这样的数字,您可以从framework 4.0开始使用

可能还不够用负号等。对于@PLBIs
提到的负值,请使用Int32.Parse(Regex.Match(yourString,@“(|-)\d+”.Value)
在字符串中?您希望数字部分是整数类型还是字符串?因为这个值看起来太大了,不可能是
int
@SteveHaigh,事实上,它太大了,甚至不可能是
长的consuming@Anandkumar,那较短的版本呢?哈比卜先生,较短的版本是超级版本,先生。。。。。。但我的问题是,与@Preben Huybrechts的答案相比,哪一个更好,即var resultString=Regex.Match(subjectString,@“\d+”).Value@阿南德库马尔,我不是一个大风扇或正则表达式和个人缺乏能力,甚至形成一个简单的:P所以不能真正评论,但通常是的,正则表达式应该做得更好-我假设一个非正则表达式的解决方案。请注意,此答案中的解决方案的性能远远好于正则表达式。如果只处理两个字符串,这不是问题。但是,如果性能至关重要(并且有数百万个字符串需要处理),我肯定更喜欢这个版本。int IntVal=Int32不适用于“5412304756756756756756792114343986”
string intValues = new string(str.Where(char.IsDigit).ToArray());
int IntVal = Int32.Parse(Regex.Match(yourString, @"(|-)\d+").Value);