0

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

原话:

输出:

堆栈,堆栈,堆栈,堆栈,堆栈,堆栈

那有意义吗?到目前为止,我有这个,我觉得我很接近,但我用了错误的方法来重新组装字符串。任何帮助,将不胜感激:

 // 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

4 回答 4

3

这应该有效:

var original = "stack";
for (int i = 0; i < original.Length; i++)
    Console.WriteLine(original.Insert(i, original[i].ToString()));
于 2013-01-30T21:01:19.453 回答
1

您可以使用String.Insert()类似的方法;

string s = "stack";

for (int i = 0; i < s.Length; i++)
{
   Console.WriteLine (s.Insert(i, s[i].ToString()));
}

这是一个DEMO.

哦,天哪,我写的时候已经添加了 3 个答案。该死..

于 2013-01-30T21:14:28.257 回答
1

您可以使用String.Insert将给定索引处的字符串插入到另一个字符串中。

IEnumerable<string> strings = originalWord
    .Select((c, idx) => originalWord.Insert(idx, c.ToString()));
于 2013-01-30T21:01:59.773 回答
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)));
于 2013-01-30T21:04:58.600 回答