亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在兩個字母數字字符串范圍之間生成所有可能的組合

在兩個字母數字字符串范圍之間生成所有可能的組合

C#
呼啦一陣風 2021-06-02 09:44:59
我正在使用 SAP Idocs,其中包含可以包含成本中心參考范圍的段。范圍作為字符串的起始值和結束值給出。要將這些值存儲在我的數據庫中,我需要生成這些值之間存在的所有可能組合。字符串是字母數字,比如 start:D98C1和 end: D9AZ3。單個字符序列首先是從 0 到 9 的數字,然后是從 A 到 Z 的字母。擴展需要在開始和結束之間生成所有可能的組合,例如 start: A1to end:CA將包含值A1to A9, AAto AZ, B0to B9, BAto BZ,C0到C9和CA。我完全堅持這一點,并且非常感謝有關如何實現這一點的一些指示。編輯:作為一個人,我會首先找到開始和結束字符串之間不同的部分。我可以做到,這很容易。所以對于上面的例子,那就是D9. 然后,我將一次一個字符遍歷起始字符串的可變部分,并從字符串的末尾更改所有字符,遍歷所有可能的字符,直到到達結束字符串中的相應字符。我只是堅持實施。我從這樣的事情開始:readonly static char[] values = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToArray();     static void Main(string[] args)    {        string from = "D3A0";        string to = "D3AC";        string root = new string(from.TakeWhile((c, i) => to.Length >= i && to[i] == c).ToArray());        string from1 = from.Substring(root.Length);        string to1 = to.Substring(root.Length);        var output = new List<string>();        for (int i = from1.Length - 1; i == 0; i--)        {            char startChar = from1[i];            char endChar = to1[i];            var remainingValues = values.SkipWhile(v => v != startChar)                                        .TakeWhile(v => v != endChar)                                        .ToList();            foreach (char v in remainingValues)            {                string currentValue = from1.Remove(i) + v;                output.Add(currentValue);            }            if (output.Contains(to1))            {                break;            }        }        foreach (var s in output.Select(o => root + o))        {            Console.WriteLine(s);        }    }但它不提供所有組合。
查看完整描述

3 回答

  • 3 回答
  • 0 關注
  • 163 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號