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