从string中提取多个整数并存储为int

时间:2015-05-19 14:38:53

标签: c# visual-studio-2010

我知道这会提取数字并存储为int -

Q = sum(X.^2 * A)

我试图从字符串中提取多个数字,例如-10 + 2 + 3,并将它们存储为单独的整数。             注意:用户输入的数字量是未知的。             任何建议非常感谢

3 个答案:

答案 0 :(得分:2)

您可以使用LINQ one-liner:

var numbers = Regex.Matches(inputData, @"\d+").Select(m => int.Parse(m.Value)).ToList();

如果您更喜欢数组而不是列表,请使用ToArray()

答案 1 :(得分:1)

C# program that uses Regex.Split

参考:http://www.dotnetperls.com/regex-split

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
    //
    // String containing numbers.
    //
    string sentence = "10 cats, 20 dogs, 40 fish and 1 programmer.";
    //
    // Get all digit sequence as strings.
    //
    string[] digits = Regex.Split(sentence, @"\D+");
    //
    // Now we have each number string.
    //
    foreach (string value in digits)
    {
        //
        // Parse the value to get the number.
        //
        int number;
        if (int.TryParse(value, out number))
        {
             Console.WriteLine(number);
        }
    }
    }
}

答案 2 :(得分:0)

您可以使用以下内容:

string inputData = "sometex10";
List<int> numbers = new List<int>();
foreach(Match m in Regex.Matches(inputData, @"\d+"))
{
    numbers.Add(Convert.ToInt32(m.Value));
}

这会将整数存储在列表numbers