Java的null值被添加到String中

时间:2014-04-15 12:49:15

标签: java

昨天我正在开发一个Android项目&发现null值也连接到一个字符串也会影响字符串长度,而空字符串不会产生任何影响。 为什么会这样?

更新的问题:为什么会这样? null应该没有任何东西!

import java.util.*;
import java.lang.*;
import java.io.*;


class Sample
{
    public static void main (String[] args) 
    {
    String nullVar  = null;
    String emptyVar = "";


    String newNullVar = nullVar + "Some,String";
    String newEmptyVar = emptyVar + "Some,String";



    System.out.println(newNullVar + " & length is " +newNullVar.length());
    System.out.println(newEmptyVar +  " & length is " +newEmptyVar.length());


    }
}

输出:

nullSome,String & length is 15
Some,String & length is 11

Output Online

2 个答案:

答案 0 :(得分:4)

null引用呈现为"null",因为JLS says so

  
      
  • 如果引用为null,则会将其转换为字符串"null"(四个ASCII字符nul,{{1} })。
  •   

另一方面,空字符串是由零个字符组成的序列,这就是它的呈现方式。

答案 1 :(得分:0)

因为这样,如果你试图打印一个空对象,你会得到一个比空虚更有用的“null”。例如

Integer i;
try{
    i = Integer.parseInt(str);
}catch(NumberFormatException e){
    //we don't care
}
System.out.println(i);