簡體   English   中英

C#從包含數字和單詞的字符串中獲取數字序列?

[英]C# get sequences of numbers from string containing numbers and words?

給定一個字符串,如“15個中的10個”或“1個點中的0個”,如何在一個變量中獲得第一個數字,在第二個變量中獲得第二個數字?

您可以使用SplitLINQ

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

這將返回包含1015List<int>

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

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

對於我的一個項目,我需要一些不同的方法。 示例:1a2b12 - > 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();
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM