C#从包含数字和单词的字符串中获取数字序列?

时间:2014-03-01 01:43:00

标签: c# string substring

给定一个字符串,如“15分中的10分”或“1分中的0分”,如何在一个变量中获得第一个数字,在第二个变量中获得第二个数字?

3 个答案:

答案 0 :(得分:6)

您可以使用SplitLINQ

var str = "10 of 15 points";
var numbers = str.Split().Where(x => x.All(char.IsDigit))
              .Select(x => int.Parse(x)).ToList();

这将返回包含List<int>10的{​​{1}}。

答案 1 :(得分:2)

var temp = "10 of 15 points".Split(" ");

var num1 = int.Parse(temp[0])
var num2 = int.Parse(temp[2])

答案 2 :(得分:0)

对于我的一个项目,我需要一些不同的方法。 例: 1a2b12 - &gt; 1,2,12

    private string[] getNumberSequencesFromString(string text)
    {
        List<string> numberSequences = new List<string>();
        for (int i = 0; i < text.Length; i++)
        {
            if (char.IsDigit(text[i]))
            {
                if (numberSequences.Count == 0)
                {
                    numberSequences.Add(text[i].ToString());
                }
                else
                {
                    if (char.IsDigit(text[i - 1]))
                    {
                        numberSequences[numberSequences.Count - 1] = numberSequences[numberSequences.Count - 1] + text[i];
                    }
                    else
                    {
                        numberSequences.Add(text[i].ToString());
                    }
                }
            }
        }
        return numberSequences.ToArray();
    }