我想写一个小程序,我要求用户输入一个电子邮件地址。然后我验证它是否有效的电子邮件地址。像“[email protected]”将是有效的,但“example @@ example.com.org”将是无效的。邮件地址验证JAVA
这是我的代码,我已经做了检测是否有@和。人物在那里,但我需要确保只出现一次,那@点之前出现(。)
import java.util.Scanner;
public class email {
public static void main(String args[])
{
Scanner skanni = new Scanner(System.in);
System.out.println("Sládu inn email adressuna thína.");
System.out.println("Email: ");
String mail = skanni.nextLine();
boolean b1=mail.contains("@") && mail.contains(".");
if (b1)
{
System.out.println("This email is valid");
}else{
System.out.println("this email is invalid");
}
}
}
如果有人可以帮助,这将不胜感激!
编辑:谢谢大家的答案和帮助。如果其他人将来会做类似的事情,我会在下面发布最终代码。哦,你可以忽略评论。你可能会不明白:)
import java.util.Scanner;
import java.util.regex.*;
public class email {
public static void main(String args[])
{
Scanner skanni = new Scanner(System.in);
System.out.println("Sládu inn email adressuna thína.");
System.out.println("Email: ");
String mail = skanni.nextLine();
/*Skilgreining á eftirfarandi kóda
*^táknid er byrjunin á strengnum
* thad sem ég set innan sviga á eftir, er thad sem ég legg áherslu á í hverju sinni
* [A-Za-z0-9] eru leyfilegir stafir í fyrsta lid emailsins, sbr: (birgir09)dæ[email protected]
* + á milli táknar ad naesti svigi byrjar, thad er ad segja. (\\-[A-Za-z0-9-])
* *@ táknar ad @ merkid er á milli sviganna
* "[A-Za-z0-9] er thad sem kemur fyrir framan punktinn sbr. (gmail).com
* (\\.[A-Za-z0-9]) er thad sem kemur fyrir aftan punkt sbr gmail.(com)
*/
Pattern p = Pattern.compile("^[A-Za-z0-9-]+(\\-[A-Za-z0-9])*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9])");
Matcher m = p.matcher(mail);
if (m.find())
{
System.out.println("Thetta email er loglegt.");
}else{
System.out.println("Thetta email er ekki loglegt.");
}
}
}
要验证电子邮件地址,你最好使用专用的API; javax.mail:mailapi似乎是你想要的在这里 – fge
顺便说一句,我认为你需要编辑你的问题的标题。这只是关于邮件地址验证。 –