邮箱地址格式:邮箱帐户@网络地址
判断网络地址格式是否合法问题:程序如下:
import java.util.Scanner;
public class CheckEmail
{
  public static void main(String[] args)
  {
    System.out.println("请输入邮箱地址:");
    Scanner scanner=new Scanner(System.in);
    String emailAddress=null;
    if(scanner.hasNext())
    {
      emailAddress=scanner.next();
    }
    if(emailAddress.length()<3)
    {
     System.out.println("邮箱地址过短,程序推出.");
     return;
    }
    if(emailAddress.indexOf('@')<1)[b[color=#800000]]----> 这里小于1是不是只要小于一个正数就可以,或者干脆写成等于一个负数呢?[/b]  [/color]    {
     System.out.println("邮箱地址格式不正确,缺少@,程序推出.");
     return;
    }
    String emailParts[]=emailAddress.split("@");这里的emailAddress.split("@")是什么意思?
    if(emailParts.length!=2)   
   {
     System.out.println("邮箱地址格式不正确,缺少@,程序推出.");
     return;
    }
    if(!emailParts[0].matches("\\w+"))    
    {
      System.out.println("邮箱网址格式不正确,程序推出.");
      return;
    }
    if(emailParts[1].toLowerCase().indexOf("www")>-1) ---> ‘-1’怎么用的?
    {
      System.out.println("邮箱网址格式不正确,程序推出.");
      return;
    }
    System.out.println("正确的邮箱地址:"+emailAddress);
  }
}所有标记的if里具体是什么意思?越详细越好....

解决方案 »

  1.   

    if(emailAddress.indexOf('@') <1)
    字符串是不是以@打头,或者根本没有@
    它包含二种情况.你要是换成-1,那以@打头的就被认为是正确的了.String emailParts[]=emailAddress.split("@");
    把字符串以@标记分割成N段
    如:[email protected]
    分成:aa和aa.com二段(emailParts[1].toLowerCase().indexOf("www")>-1)
    地址段是否以www开始if(!emailParts[0].matches("\\w+"))
    帐号部分是否有一个以上的非[a-zA-Z_0-9]字符正则表达式:
    \w= A word character: [a-zA-Z_0-9]
    += 一个或更多
      

  2.   

    说错鸟
    (emailParts[1].toLowerCase().indexOf("www")>-1) 
    地址段是否包含www!!!