【问题标题】:Text replace in C# string [duplicate]C#字符串中的文本替换[重复]
【发布时间】:2020-05-04 16:33:48
【问题描述】:

当替换文本框中的文本对我不起作用时,我附上了我使用的代码。我正在使用 c # 处理 windows 窗体

string struser = "";
struser = txtusu.Text;
struser.ToUpper();
struser.Replace("=", "0");
struser.Replace(";", ":");
struser.Replace("Ñ", ":");
struser.Replace("ñ", ":");
struser.Replace("u", "U");
struser.Replace("U:", "");
struser.Trim();

需要注意的是,我在按键事件中有代码。

【问题讨论】:

  • 如果您查看string.Replace documentation,它清楚地表明它返回一个替换文本的新字符串。它不会修改当前的字符串变量。因此你必须做类似struser = struser.Replace("=", "0");
  • 字符串是不可变的。您必须将所有这些调用分配给某些东西。
  • 仅供参考,您可以将所有这些调用链接在一起txtusu.Text = txtusu.Text.ToUpper().Replace(.....).Trim();
  • 看这个帖子:stackoverflow.com/questions/1948978/…。我认为这与您的问题有关。
  • @IliarTurdushev 啊-也许他们删除了标记它的能力。无论如何,在 3K 声望下,你可以投接近票,祝你好运!

标签: c# string windows forms textbox


【解决方案1】:

字符串在 C# 中是不可变的,因此您必须将更新它们的方法的结果分配回源变量/属性。您也可以只链接方法调用以避免有一堆分配。

txtusu.Text = txtusu.Text
    .ToUpper()
    .Replace("=", "0")
    .Replace(";", ":")
    .Replace("Ñ", ":")
    .Replace("ñ", ":")
    .Replace("u", "U")
    .Replace("U:", "")
    .Trim();

【讨论】:

    猜你喜欢
    • 2016-01-08
    • 2013-04-05
    • 1970-01-01
    • 2017-04-03
    • 2020-10-21
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多