C# 从名称字符串c解析电子邮件的代码#
我正在试着对这个按钮进行代码解析 我打字的时候skw2030@gmail.com电子邮件地址 messagbox弹出一个 用户名:skw2030 域名:gmail.com 因此,我使用代码删除“@”,但当我单击parse按钮时, 它总是删除用户名的第一个字母,例如)kw2030。。。 我该怎么办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
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,如果你认为我的答案回答你的问题,请考虑一下点击那个滴答声。