Этот код должен анализировать электронное письмо на имя пользователя и доменное имя. Если я наберу [email protected], появится окно сообщения с надписью «Имя пользователя: имя домена apa: gmail.com».
Я адаптировал код из своего учебника и продолжаю получать вышеуказанное сообщение об ошибке в email = Email.Remove(0, 1); и domainName = Email.Remove(Email.Length -1, 1). Какие-либо предложения?
public partial class StringHandling : Form
{
string email = "";
string state = "";
string city = "";
int zipCode = 0;
public StringHandling()
{
InitializeComponent();
}
private void btnParse_Click(object sender, EventArgs e)
{
string Email = "";
string domainName = "";
email = txtEmail.Text;
email = Email.Trim();
if (email.StartsWith(""))
email = Email.Remove(0, 1);
if (email.EndsWith("@"))
domainName = Email.Remove(Email.Length - 1, 1);
MessageBox.Show("Username: " + email + "\n" + "Domain Name: " + domainName);
В C# Эл. адрес и Эл. адрес — это две разные переменные. Вы присваиваете пустую строку переменной Эл. адрес и, конечно же, ничего не можете удалить из пустой строки
Email всегда пуст, поэтому Email.Length - 1 всегда будет -1
Также я сомневаюсь, что в вашем учебнике действительно говорится, что этот код должен анализировать электронное письмо в двух его компонентах. Этот код просто пытается удалить символы из начала и конца строки





email.StartsWith("") всегда будет true (на самом деле вы не указали ничего, с чего должно начинаться электронное письмо). Так как всегда будет начинаться с пустой строки, когда вы попытаетесь вызвать email = Email.Remove(0, 1);. Вы пытаетесь удалить первый символ, и, поскольку строка пуста, первого символа нет (общая длина строки равна 0), поэтому вы получаете это исключение.
Мое предложение: избегайте нескольких переменных с разными регистрами (например, электронная почта и электронная почта). Это приводит к некоторой путанице. Это две отдельные переменные, и вы никогда ничего не присваивали Email (Capitol E), поэтому в случае email = Email.Remove(0, 1);Email всегда будет пустой строкой и выдаст эту ошибку.
Хорошо, это я могу понять. Я исправил эту часть. Теперь он отделяет имя пользователя от доменного имени, которое я не могу получить. Он просто заполняет все в поле имени пользователя моего окна сообщения. @FrankerZ Спасибо, что действительно помогаете, а не снисходительны. Я новичок в C#, и этот класс для меня очень сложный, потому что я не посещал все те же курсы, что и другие мои одноклассники. Ты делаешь мне огромное одолжение. Мне удалось определить имя пользователя, но не доменное имя, а также он вообще не может отображать символ @. Итак, я просто немного потерялся. Еще раз спасибо за вашу помощь.
email.StartsWith("")- это вернет true для пустой строки (поскольку вы проверяете, начинается ли строка с пустой строки)