Я хочу объединить две строки таким образом, чтобы после первого символа первой строки появился первый символ второй строки, а затем появился второй символ первой строки а затем появляется второй символ второй строки и т. д. Лучший объяснить некоторые примеры случаев:Лучший способ для специальной конкатенации двух строк
s1="Mark";
s2="Zukerberg"; //Output=> MZaurkkerberg
если:
s1="Zukerberg";
s2="Mark" //Output=> ZMuakrekrberg
если:
s1="Zukerberg";
s2="Zukerberg"; //Output=> ZZuukkeerrbbeerrgg
Я написал следующий код, который дает ожидаемый результат, но его, кажется, много кода. Есть ли более эффективный способ сделать это?
public void SpecialConcat(string s1, string s2)
{
string[] concatArray = new string[s1.Length + s2.Length];
int k = 0;
string final = string.Empty;
string superFinal = string.Empty;
for (int i = 0; i < s1.Length; i++)
{
for (int j = 0; j < s2.Length; j++)
{
if (i == j)
{
concatArray[k] = s1[i].ToString() + s2[j].ToString();
final = string.Join("", concatArray);
}
}
k++;
}
if (s1.Length > s2.Length)
{
string subOne = s1.Remove(0, s2.Length);
superFinal = final + subOne;
}
else if (s2.Length > s1.Length)
{
string subTwo = s2.Remove(0, s1.Length);
superFinal = final + subTwo;
}
else
{
superFinal = final;
}
Response.Write(superFinal);
}
}
Я написал ту же логику и в Javascript, который отлично работает, но снова много кода.
но ......... почему – Jonesopolis
@Jonesy Ничто не просто для удовольствия и некоторой практики. :) – RahulD
Использование IEnumerable .Zip. Вам нужно будет добавить хвосты. –
Maarten