(C#)如何更有效地替换代码中字母的实例?

时间:2018-08-31 22:37:10

标签: c# regex replace stringbuilder

Anticipated Before & After of Text

private void buttonCrossbar_Click(object sender, EventArgs e)
    {
        string text = "If i'm an IDIOT, I will...i…i can't do IT!";
        textBoxInput.Text = text;
        // \b[I|i] sets all I's to lowercase
        string output = Regex.Replace(text, @"[I]", "i");
        StringBuilder builder = new StringBuilder(output);
        builder.Replace(" i ", " I ");
        builder.Replace(" i'", " I'");
        builder.Replace(" i.", " I.");
        builder.Replace(" i…", " I…");
        builder.Replace("i.", "I.");
        builder.Replace(".i", ".I");
        builder.Replace("…i", "…I");
        textBoxOutput.Text = builder.ToString();
    }

我最初的计划是使用正则表达式来完成所有这些工作,但是我很快发现这是多么的令人头疼。然后我发现我可以使用builder来检查每个实例。但是代码看起来很长。有没有一种方法可以简化和/或更有效地执行它?

主要目的是更改字母I / i实例的大小写,以便将I用于代词及其缩略词时,I仅是大写字母。我尝试通过将所有实例都转换为小写,然后根据构建器替换来替换它们来实现这一点。

谢谢您的帮助,我是编程新手!

0 个答案:

没有答案