如何在C#中基于另一个字符串向字符串添加字符?

时间:2019-08-17 21:36:26

标签: c# string for-loop char

我需要创建一个函数,该函数接收两个字符串,表示要完成的单词和参考单词,以及与建议字母相对应的字符,然后返回与要完成的单词相对应的字符串,其中所有相对于参考词,增加了建议的字母的出现次数。

示例:CompleterMot (".. IM ..", "ANIMAL", 'A')应该返回"A.IMA."。 我不明白如何在要完成的单词中添加所有出现的字母。

static string CompleterMot(string motincomplet, string motoriginal, char lettrepropos)
{
    string output = " ";

    for (int i = 0; i < motoriginal.Length; i++)
    {
        if((motoriginal[i] == lettrepropos))
        {
            output = motincomplet;
            if(output[i] != lettrepropos)
                output += (char)(lettrepropos);
        }
    }

    return output;
}

最后,我有..IM..A,而且我不知道如何修正代码。

1 个答案:

答案 0 :(得分:2)

在循环中,您正在这样做:output = motincomplet;会覆盖先前的结果。然后,将期望的字母附加到结果为"..IM.." + 'A'的输出上。

您可以使用StringBuilder进行字符串操作,这非常好,并且可以直接在给定索引处更改字符:

static string CompleterMot(string motincomplet, string motoriginal, char lettrepropos)
{
    var sb = new System.Text.StringBuilder(motincomplet);

    for (int i = 0; i < motoriginal.Length; i++)
    {
        if (motoriginal[i] == lettrepropos)
        {
            sb[i] = lettrepropos;
        }
    }
    return sb.ToString();
}