我们可以将 toString() 函数与 stringbuffer object-'sb' 一起使用吗?

Can we use toString() function with stringbuffer object-'sb'?

这是反转保留 space 位置的字符串的程序。在这个问题中,无论是否使用 toString() 函数和 sb,输出都是正确的。我不明白的一件事是 sb 是一个 StringBuffer 对象,那么我们如何在最后一个打印语句中使用该对象,因为该对象需要转换为字符串格式。

这是jdk1.8.0

的代码
public static void main(String args[])
{
    Scanner sc=new Scanner(System.in);
    String st="";
    st=sc.nextLine();
    StringBuffer sb=new StringBuffer(st.replace(" ",""));
    sb=sb.reverse();
    for(int i=0;i<st.length();i++)
    {
        if(st.charAt(i)==' ')
        {
            sb.insert(i,' ');
        }
    }
    System.out.println(sb);

}

PrintStream(如 System.outSystem.err)有几个重载的 println 方法。在这里,具体来说,您正在调用 println(Object)。此方法对其参数调用 String.valueOf 然后打印它。对于 non-null 参数,相当于调用 toString()