public class StringEnd02 {
public static void main(String argsp[])
{
String mail = "[email protected]";
String mail2 = "123456#gmail,com";
String[] bx = new String[3];
bx[0] = "@";
bx[1] = ".";
System.out.println(mail);
for (int i = 0 ; i <=bx.length;i++)
{
System.out.println("mail里是否包含"+bx[i]+"\t--->"+mail.contains(bx[i]));
} }}
执行后有判断结果,但会报错。请教为什么?
[email protected]
mail里是否包含@ --->true
mail里是否包含. --->true
Exception in thread "main" java.lang.NullPointerException
at java.lang.String.contains(Unknown Source)
at StringEnd02.main(StringEnd02.java:13)
另外,我不知道如何在写一个for来判断mail2
求教各位。。

解决方案 »

  1.   

    循环写错导致数组访问超界:
      for (int i = 0 ; i <=bx.length;i++)
    修改为:
      for (int i = 0 ; i < bx.length;i++)
      

  2.   

    ,public static void main(String argsp[]) {
    String mail = "[email protected]";
    String mail2 = "123456#gmail,com";
    String[] bx = new String[3];
    bx[0] = "@";
    bx[1] = ".";
    System.out.println(mail);
    for (int i = 0; i < (bx.length-1); i++) {
    System.out.println("mail里是否包含" + bx[i] + "\t--->"+ mail.contains(bx[i]));
    }
    }
    这样的话就不会报错了
      

  3.   


    你这样做的话数组是不越界了,但是他的数组里有个“null”,所以说应该还会报错
      

  4.   

    因为你没给bx[2]赋值,所以它为null,代码改为
    public class StringEnd02 {
    public static void main(String argsp[])
    {
    String mail = "[email protected]";
    String mail2 = "123456#gmail,com";
    String[] bx = new String[2];
    bx[0] = "@";
    bx[1] = ".";
    System.out.println(mail);
    for (int i = 0 ; i <bx.length;i++)
    {
    System.out.println("mail里是否包含"+bx[i]+"\t--->"+mail.contains(bx[i]));
    } }}
      

  5.   

    判断mail2可以和mail一起来判断
    代码我给你贴出来,但还是希望你能自己去做,不要去复制我的代码,参考一下就可以了。
    希望对你有帮助
    public static void main(String argsp[]) {
    String mail = "[email protected]";
    String mail2 = "123456#gmail,com";
    String[] bx = new String[4];
    bx[0] = "@";
    bx[1] = ".";
    bx[2] = "#";
    bx[3] = ",";
    System.out.println(mail);
    for (int i = 0; i <bx.length; i++) {
    System.out.println("mail   里是否包含" + bx[i] + "\t--->"+ mail.contains(bx[i]));
    System.out.println("mail2     里是否包含" + bx[i] + "\t--->"+ mail2.contains(bx[i]));
    }
    }