System.out.println(s.length());
是不是这句就出错了?

解决方案 »

  1.   

    当然,这句肯定会出nullpointexception!
      

  2.   

    结果是NULL,有NullPointerException,既然是s=null 还要输出他的长度,System.out.println(e.toString());//这出现异常
      

  3.   

    因为s 是null的,所以它这个对象其实是不存在的,你在这个对象上执行的操作当然是没有指向了。
      

  4.   

    各位当
    String s=null;
    System.out.println(s.length());
    结果: 4

    String s="";
    System.out.println(s.length());
    结果: 0
    不信可以试一试而且
    String s=null;
    s=s+2;
    System.out.println(s);
    为:null2而
    String s="";
    s=s+2;
    System.out.pringln(s);
    为:2
      

  5.   

    这个问题我在程序中也遇到啦
    String s=null;
    System.out.println(s.length());
    结果为4是对的
    而且s中的内容是“null”再例如,Jsp中取参数
    如果该参数不存在】
    应该取得null
    但如果要显示(如再文本框)仍然是null
    但是要取得该参数的长度就是错的啦
    什么NullPointerException
    ^_^
      

  6.   

    dreamlxw(林林) :
    当:
    String s=null;
    try{
         s.equals("a");}catch(Exception e){
         System.out.println(e.toString());
    }
    这时将抛出NullPointException 如果是String s="null";
    则有不会抛出,请问这到底是怎么回事?
      

  7.   

    你用的是JDK多少的啊?
    当String s=null;
    System.out.println(s.length());这一句肯定是会抛出
    java.lang.NullPointerException来的,你是在什么情况下,用什么工具时出现4这个结果的啊???
      

  8.   

    我猜,你是从数据库里取的String s吧,getString()当此记录为null时,好像能得到一个“null”的string
      

  9.   

    怎么可能有4出现??null代表s这个句柄目前没有分配实例相连接,任何对它进行的操作都应该抛出异常!而s=“null”就给s分配了“null“这个String类型的实例,也就是说s句柄指向”null“实例,当然没有错误了
      

  10.   

    各位:
    大家不信可以试一试,看看结果到底是什么!!!!!我的jdk 使用的是 1.4 ,而且我也不是从数据库里取的!
      

  11.   

    难不成你发现了1。4的BUG了,恭喜恭喜!
      

  12.   

    不应该出错这样的问题!
     可能是jdk1.4的漏洞吧
      

  13.   

    我也试过了:
              String s="null";
    System.out.println(s.length());
    的确出错,我是记得往数据库(oracle)插入空字符串时有时会插入null,但这里不表示空,而是表示一个“null”的字符串,所以我认为eyeieye(魔之眼) 说的对,你取的应该是库里的值!
      

  14.   

    String s="null";
    System.out.println(s.length());
    这还会出错?
    你的s已经指向了一个"null"字符串了。
      

  15.   

    抱歉我搞错了不过下面的例子确实是有问题
    :
    public class test{
     public static void main(String[]args){
    String testNUll=null;
                      String test="null";
    String testS="";
    testNUll+=2;
                      test+=2;
                      testS+=2;
    System.out.println(testNUll);
    System.out.print("testNUll'length:");
    System.out.println(testNUll.length()); System.out.println(testS);
    System.out.print("testS'length:");
    System.out.println(testS.length());                  System.out.println(test);
    System.out.print("test'length:");
    System.out.println(test.length());

    }
    }
    大家试一试上面的程序,比较一下结果看看有什么有趣的情况发生!!!!!!!!
      

  16.   

    很正常的.
    testNUll+=2;
    ==> testNUll = testNUll + 2;
    String对象在连字的时候,先把null对象转变为"null",再加上2,为"null2".
    test,testS打印次序倒了,咋一看,还以为不对.