[案例1] 2个输入参数
'abc','tre'
输出值
'atbrce'
[案例2] 3个输入参数
'gbd','学生'
输出
'gsbtdudent'
如何解决shuffle string merge?
答案 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());
答案 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]));