C#如何解决shuffle字符串合并?

时间:2017-03-12 12:16:48

标签: c# string merge shuffle

[案例1] 2个输入参数
'abc','tre'
输出值
'atbrce'

[案例2] 3个输入参数
'gbd','学生' 输出
'gsbtdudent'

如何解决shuffle string merge?

4 个答案:

答案 0 :(得分:0)

这很简单:

var rnd = new Random();
string st1="abc";
string str2="tre";
string unsuffled = str1+str2;
string shuffled = new string(unsuffled.OrderBy(r => rnd.Next()).ToArray());

refrence Link

答案 1 :(得分:0)

这就是你想要的

List<char> list1 = "gbd".ToList<char>();
            List<char> list2 = "student".ToList<char>();
            string result = string.Empty;
            for (int i = 0; i <  list2.Count(); i++)
            {
                try
                {
                    result = result + list1[i] + list2[i];
                }
            catch
            {
                result = result + list2[i];
            }
        }

答案 2 :(得分:0)

我相信这应该做你想要的。如果输入的长度不同,它仍然可以工作,因为添加到结果的是每个输入的单独try块。由于longest行背后的逻辑读取了哪个输入更长,这也无关紧要:

If input1 is longer than input2 Then longest = input1.Length Else longest = input2.Length

        var input1 = "abc";
        var input2 = "student";
        var result = new StringBuilder();
        // Gets the length of the longest string
        var longest = input1.Length > input2.Length ? input1.Length : input2.Length;
        for (int i = 0; i < longest; i++)
        {
            try 
            {
                result.Append(input1[i]);
            }
            catch (IndexOutOfRangeException ex) 
            {
            }
            try 
            {
                result.Append(input2[i]);
            }
            catch (IndexOutOfRangeException ex) 
            {
            }
        }
        System.Console.WriteLine(result.ToString());

答案 3 :(得分:0)

您可以这样做吗?

string a = "hell";
string b = "tata";

var concatString = String.Join("", a.Select((x, i) => x + "" + b[i]));