昨天我正在开发一个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
答案 0 :(得分:4)
null
引用呈现为"null"
,因为JLS says so:
- 如果引用为
null
,则会将其转换为字符串"null"
(四个ASCII字符n
,u
,l
,{{1} })。
另一方面,空字符串是由零个字符组成的序列,这就是它的呈现方式。
答案 1 :(得分:0)
因为这样,如果你试图打印一个空对象,你会得到一个比空虚更有用的“null”。例如
Integer i;
try{
i = Integer.parseInt(str);
}catch(NumberFormatException e){
//we don't care
}
System.out.println(i);