我们可以将 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.out
或 System.err
)有几个重载的 println
方法。在这里,具体来说,您正在调用 println(Object)
。此方法对其参数调用 String.valueOf
然后打印它。对于 non-null 参数,相当于调用 toString()
。
这是反转保留 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.out
或 System.err
)有几个重载的 println
方法。在这里,具体来说,您正在调用 println(Object)
。此方法对其参数调用 String.valueOf
然后打印它。对于 non-null 参数,相当于调用 toString()
。