创建一个带有重复字母的新字符串

时间:2013-01-30 20:57:46

标签: c# arrays string tostring to-char

我正在尝试创建一个字符串,将原始字母中的重复字母插入到已修改的字母中。例如,一次运行的输出将是:

原文:

  

输出:

  

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);
 }

4 个答案:

答案 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个答案。该死..