首页 > 解决方案 > 如何根据 C# 中的另一个字符串将字符添加到字符串中?

问题描述

我需要创建一个函数,它接收两个字符串,代表要完成的单词和参考词,以及与建议的字母对应的字符,并返回一个与要完成的单词对应的字符串,其中所有出现的相对于参考词,已添加建议的字母。

示例: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,但我不知道如何修复我的代码。

标签: c#stringfor-loopchar

解决方案


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

您可以使用StringBuilderfor 字符串操作,这非常好,并允许您直接更改给定索引处的字符:

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

推荐阅读