我正在尝试创建一个字符串,将原始字母中的重复字母插入到已修改的字母中。例如,一次运行的输出将是:
原文:
堆
输出:
sstack,sttack,staack,stacck,stackk
这有意义吗?到目前为止,我有这个,我觉得我很接近,但我正在起诉错误的方法重新组装字符串。任何帮助将不胜感激:
// Use ToCharArray to convert string to array.
char[] array = originalWord.ToCharArray();
// Loop through array.
for (int i = 0; i < array.Length; i++)
{
// Get character from array.
char letter = array[i];
string result = array.ToString();
string result2 = string.Join("", result.Select(x => x + letter));
Console.Write(result2);
}
答案 0 :(得分:3)
这应该有效:
var original = "stack";
for (int i = 0; i < original.Length; i++)
Console.WriteLine(original.Insert(i, original[i].ToString()));
答案 1 :(得分:1)
您可以使用String.Insert将给定索引处的字符串插入另一个字符串。
IEnumerable<string> strings = originalWord
.Select((c, idx) => originalWord.Insert(idx, c.ToString()));
答案 2 :(得分:1)
修正:
string originalWord = "stack";
// Use ToCharArray to convert string to array.
char[] array = originalWord.ToCharArray();
// Loop through array.
for (int i = 0; i < array.Length; i++)
{
// Get character from array.
char letter = array[i];
string result = originalWord.Insert(i, letter.ToString(CultureInfo.InvariantCulture));
Console.WriteLine(result);
}
Linq方式:
IEnumerable<string> words = originalWord.Select((letter, i) => originalWord.Insert(i, letter.ToString(CultureInfo.InvariantCulture)));
答案 3 :(得分:1)
您可以使用String.Insert()
方法;
string s = "stack";
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine (s.Insert(i, s[i].ToString()));
}
这是DEMO
。
天啊,我写这篇文章时已经得到了3个答案。该死..