字符串操作问题

vip*_* k. 0 java

当我看到这段代码时,我对java String的理解出错了.我不确定这是怎么回事.谁能解释为什么会这样?

public class NewClass {
    public static void main(String[] args) {
        String str=null;

        System.out.println(str+"Added");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:nullAdded

Jon*_*eet 11

字符串连接将空引用视为Java中的"null".从文档StringBuilder.Append(String):

String参数的字符按顺序附加,按参数的长度增加此序列的长度.如果str为null,则附加四个字符"null".

基本上你的代码类似于:

public class NewClass {
    public static void main(String[] args) {
        String str=null;

        System.out.println(new StringBuilder().append(str)
                                              .append("Added")
                                              .toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

这会让它更清楚吗?