【问题标题】:How can I add a character to a string based on another string in C#?如何根据 C# 中的另一个字符串将字符添加到字符串中?
【发布时间】:2019-12-23 16:35:28
【问题描述】:

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

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

【问题讨论】:

  • 对于非法语使用者:CompleterMot 是 CompletWord,motincomplet 是 IncompleteWord,motoriginal 是 OriginalWord 和 lettrepropos 是 SuggestedLetter

标签: c# string for-loop char


【解决方案1】:

在您的循环中,您正在执行此操作: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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-28
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多