为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用方法替换特定字符串?

如何使用方法替换特定字符串?

C#
HUX布斯 2023-08-20 09:49:08
我的代码有问题,我想将特定字符串替换为新字符串,但它不起作用public void InsertYahoo(TextBox sender){    if (IsGmail(sender))    {        ReplaceGmail(sender);    }    else if(IsYahoo(sender))    {        return;    }    else    {        sender.Text +="@yahoo.com";    }}public bool IsYahoo(TextBox sender){    if (sender.Text.Contains("@yahoo.com")    {        return true;    }    else    {         return false;    }}public bool IsGmail(TextBox sender){     if (sender.Text.Contains("@gmail.com")     {        return true;    }    else    {         return false;    }}public void ReplaceGmail(TextBox sender){    sender.Text.Replace("@gmail.com, "@yahoo.com");}这段代码是我尝试过的,所以有什么建议吗?我还尝试获取 @gmail.com 的索引并将其删除,但它也不起作用
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

字符串是不可变的,因此String类中的每个方法都不会修改当前实例,而是返回一个新实例。您必须将其分配给原始变量:

sender.Text = sender.Text.Replace("@gmail.com,"@yahoo.com");
查看完整回答
反对 回复 2023-08-20
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

像这样的东西:


//DONE: we should check for null

//DONE: it's Yahoo if it ends on @yahoo.com (not contains)

public static bool IsYahoo(TextBox sender) =>

  sender != null && 

  sender.Text.TrimEnd().EndsWith("@yahoo.com", StringComparison.OrdinalIgnoreCase);


public static bool IsGmail(TextBox sender) =>

  sender != null && 

  sender.Text.TrimEnd().EndsWith("@gmail.com", StringComparison.OrdinalIgnoreCase);


public static void InsertYahoo(TextBox sender) {

  if (null == sender)

    throw new ArgumentNullException(nameof(sender));


  if (IsYahoo(sender))

    return;


  // Uncomment, In case you want to change gmail only

  //if (!IsGmail(sender)) 

  //  return;


  // If we have an eMail like bla-bla-bla@somewhere

  int p = sender.Text.LastIndexOf('@');


  // ... we change somewhere to yahoo.com

  if (p > 0)

    sender.Text = sender.Text.Substring(0, p) + "@yahoo.com";




查看完整回答
反对 回复 2023-08-20
  • 2 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信