C# 从名称字符串c解析电子邮件的代码#

C# 从名称字符串c解析电子邮件的代码#,c#,C#,我正在试着对这个按钮进行代码解析 我打字的时候skw2030@gmail.com电子邮件地址 messagbox弹出一个 用户名:skw2030 域名:gmail.com 因此,我使用代码删除“@”,但当我单击parse按钮时, 它总是删除用户名的第一个字母,例如)kw2030。。。 我该怎么办 private void btnParse_Click(object sender, EventArgs e) { string email = Convert.ToString

我正在试着对这个按钮进行代码解析 我打字的时候skw2030@gmail.com电子邮件地址 messagbox弹出一个 用户名:skw2030 域名:gmail.com

因此,我使用代码删除“@”,但当我单击parse按钮时, 它总是删除用户名的第一个字母,例如)kw2030。。。 我该怎么办

private void btnParse_Click(object sender, EventArgs e)
    {
        string email = Convert.ToString(txtEmail.Text);
        email = email.Trim();
        if (email.Contains("@"))
            email = email.Remove(0, 1);
        int IndexDomain = email.IndexOf("@") + 1;

        string UserName = email.Substring(0 , IndexDomain - 1);
        string DomainName = email.Substring(IndexDomain);

        MessageBox.Show("User name:"  +  UserName.ToString() + "\n"
          + "Domain Name:" + DomainName.ToString(), "Parsed String");                   

    }
这可能会帮助您:

几点建议:

  • 来自
    txtEmail
    的输入已经是一个字符串,您不需要修改它 再次将其转换为字符串
  • 如果给定的邮件id不是
    “@”
    ,则最好显示一个警报,说明输入的邮件id无效
  • 不需要删除特定字符;根据字符将字符串拆分为
    2
    。这将为您提供所需的结果
  • 将接受两个参数,第一个表示开始索引,第二个表示字符数:因此,如果要执行此删除操作,需要执行以下操作(但此处不需要):

  • 另一个更好的选择是使用占位符格式化输出消息

现在考虑片段:

string email = txtEmail.Text.Trim();; // "skw2030@gmail.com"      
if (email.Contains("@"))
{
   string[] addressElements = email.Split('@');
   MessageBox.Show(String.Format("User name: {0} \n Domain Name: {1}",addressElements[0],addressElements[1]), "Parsed String");
}
else
MessageBox.Show("invalid Mail");
这可能会帮助您:

几点建议:

  • 来自
    txtEmail
    的输入已经是一个字符串,您不需要修改它 再次将其转换为字符串
  • 如果给定的邮件id不是
    “@”
    ,则最好显示一个警报,说明输入的邮件id无效
  • 不需要删除特定字符;根据字符将字符串拆分为
    2
    。这将为您提供所需的结果
  • 将接受两个参数,第一个表示开始索引,第二个表示字符数:因此,如果要执行此删除操作,需要执行以下操作(但此处不需要):

  • 另一个更好的选择是使用占位符格式化输出消息

现在考虑片段:

string email = txtEmail.Text.Trim();; // "skw2030@gmail.com"      
if (email.Contains("@"))
{
   string[] addressElements = email.Split('@');
   MessageBox.Show(String.Format("User name: {0} \n Domain Name: {1}",addressElements[0],addressElements[1]), "Parsed String");
}
else
MessageBox.Show("invalid Mail");

您可以使用string的split方法。就像这样:

string email = "abc@example.com";
string[] arr = email.Split('@');
private void btnParse_Click(object sender, EventArgs e)
{
     string email = txtEmail.Text.Trim(); // your email address      
     if (email.Contains("@"))
     {
         var userName = email.Substring(0, email.IndexOf('@'));
         var domainName = email.Substring(email.IndexOf('@') + 1, email.Length - email.IndexOf('@') - 1);
         MessageBox.Show("User name:"  +  userName + "\n" + "Domain Name:" + domainName, "Parsed String"); 
     }
     else
     {
         MessageBox.Show("Invalid email");
     }
}
它将为您提供两个元素数组,第一个元素是name(abc),第二个元素是domain(example.com)

顺便说一下,在您的情况下,问题是:

email = email.Remove(0, 1);

您可以使用string的split方法。就像这样:

string email = "abc@example.com";
string[] arr = email.Split('@');
private void btnParse_Click(object sender, EventArgs e)
{
     string email = txtEmail.Text.Trim(); // your email address      
     if (email.Contains("@"))
     {
         var userName = email.Substring(0, email.IndexOf('@'));
         var domainName = email.Substring(email.IndexOf('@') + 1, email.Length - email.IndexOf('@') - 1);
         MessageBox.Show("User name:"  +  userName + "\n" + "Domain Name:" + domainName, "Parsed String"); 
     }
     else
     {
         MessageBox.Show("Invalid email");
     }
}
它将为您提供两个元素数组,第一个元素是name(abc),第二个元素是domain(example.com)

顺便说一下,在您的情况下,问题是:

email = email.Remove(0, 1);

我猜你只是想把绳子一分为二,对吧

在电子邮件中,@左边的所有内容都是用户名,右边是域。要将电子邮件分成两部分,请使用
split()
方法:

string email = "abc@def.com";
string[] twoParts = email.Split('@');
现在数组
two-parts
包含两个元素——“abc”和“def.com”,这正是您想要的,对吗

string username = twoParts[0];
string domainName = twoParts[1];
但是等等!如果电子邮件无效怎么办?要检查电子邮件是否无效,只需检查数组的长度:

if (twoParts.Length != 2) {
    // show error message
}

当然,在获取用户名和域之前,您应该检查一下。我想您只是想将字符串一分为二,对吗

在电子邮件中,@左边的所有内容都是用户名,右边是域。要将电子邮件分成两部分,请使用
split()
方法:

string email = "abc@def.com";
string[] twoParts = email.Split('@');
现在数组
two-parts
包含两个元素——“abc”和“def.com”,这正是您想要的,对吗

string username = twoParts[0];
string domainName = twoParts[1];
但是等等!如果电子邮件无效怎么办?要检查电子邮件是否无效,只需检查数组的长度:

if (twoParts.Length != 2) {
    // show error message
}

当然,在获取用户名和域之前,您应该先检查一下。下面这一行将从电子邮件字符串的索引0中删除1个字符

email = email.Remove(0, 1);
If(email.Contains(“@”)
可用于确保用户输入了有效的电子邮件以处理引发的异常。您应该这样修改代码:

private void btnParse_Click(object sender, EventArgs e)
{
    string email = Convert.ToString(txtEmail.Text);
    email = email.Trim();
    if (email.Contains("@"))
    {
        //email = email.Remove(0, 1); <--- Remove this
        int IndexDomain = email.IndexOf("@") + 1;

        string UserName = email.Substring(0 , IndexDomain - 1);
        string DomainName = email.Substring(IndexDomain);

        MessageBox.Show("User name:"  +  UserName.ToString() + "\n"
          + "Domain Name:" + DomainName.ToString(), "Parsed String");
    }
    else
    {
        //Tell users that the email is invalid.
        //For example: MessageBox.Show("Invalid Email");
    }
}
您的
用户名
域名
现在只是:

string UserName = emailArray[0];
string DomainName = emailArray[1];

简单得多,对吗?

下面这行将从电子邮件字符串的索引0中删除1个字符

email = email.Remove(0, 1);
If(email.Contains(“@”)
可用于确保用户输入了有效的电子邮件以处理引发的异常。您应该这样修改代码:

private void btnParse_Click(object sender, EventArgs e)
{
    string email = Convert.ToString(txtEmail.Text);
    email = email.Trim();
    if (email.Contains("@"))
    {
        //email = email.Remove(0, 1); <--- Remove this
        int IndexDomain = email.IndexOf("@") + 1;

        string UserName = email.Substring(0 , IndexDomain - 1);
        string DomainName = email.Substring(IndexDomain);

        MessageBox.Show("User name:"  +  UserName.ToString() + "\n"
          + "Domain Name:" + DomainName.ToString(), "Parsed String");
    }
    else
    {
        //Tell users that the email is invalid.
        //For example: MessageBox.Show("Invalid Email");
    }
}
您的
用户名
域名
现在只是:

string UserName = emailArray[0];
string DomainName = emailArray[1];

更简单,对吗?

您可以对字符串使用子字符串方法。就像这样:

string email = "abc@example.com";
string[] arr = email.Split('@');
private void btnParse_Click(object sender, EventArgs e)
{
     string email = txtEmail.Text.Trim(); // your email address      
     if (email.Contains("@"))
     {
         var userName = email.Substring(0, email.IndexOf('@'));
         var domainName = email.Substring(email.IndexOf('@') + 1, email.Length - email.IndexOf('@') - 1);
         MessageBox.Show("User name:"  +  userName + "\n" + "Domain Name:" + domainName, "Parsed String"); 
     }
     else
     {
         MessageBox.Show("Invalid email");
     }
}

可以对字符串使用子字符串方法。就像这样:

string email = "abc@example.com";
string[] arr = email.Split('@');
private void btnParse_Click(object sender, EventArgs e)
{
     string email = txtEmail.Text.Trim(); // your email address      
     if (email.Contains("@"))
     {
         var userName = email.Substring(0, email.IndexOf('@'));
         var domainName = email.Substring(email.IndexOf('@') + 1, email.Length - email.IndexOf('@') - 1);
         MessageBox.Show("User name:"  +  userName + "\n" + "Domain Name:" + domainName, "Parsed String"); 
     }
     else
     {
         MessageBox.Show("Invalid email");
     }
}

您在
if
块中无明显原因地显式删除字符串的第一个字符。您在
if
块中无明显原因地显式删除字符串的第一个字符。非常感谢!这就是问题所在…非常感谢!这就是问题所在…非常感谢!我无法想象使用数组。这可能很简单。@ KyungwonSuh,如果你认为我的答案回答你的问题,请考虑一下点击那个滴答声,谢谢!我无法想象使用数组。这可能很简单。@ KyungwonSuh,如果你认为我的答案回答你的问题,请考虑一下点击那个滴答声。