黑马程序员技术交流社区

标题: String和StringBuffer的问题 [打印本页]

作者: hyace    时间: 2014-4-7 22:21
标题: String和StringBuffer的问题
String和StringBuffer可以转换么?有时候操作的时候需要StringBuffer能最后转成一个String类型对象么?

作者: 张治国    时间: 2014-4-7 22:30
当然可以了。StringBuffer有 toString()方法,
         此方法 返回此序列中数据的字符串表示形式。
作者: 一世英明    时间: 2014-4-7 22:55
  1.1 String
        字符串常量,但是它具有不可变性,就是一旦创建,对它进行的任何修改操作都会创建一个新的字符串对象。
StringBuffer
        字符串可变量,是线程安全的,和StringBuilder类提供的方法完全相同。如果查看java的源代码(即java安装目录的src.zip文件),就会发现它和StringBuilder类的方法的区别就是,在每个方法前面添加了"synchronized",保证其是线程安全的。

这是他们的区别! 转换的可以参照2楼的...





作者: 微笑=.一瞬间    时间: 2014-4-7 23:01
可以转换 StringBuffer类的对象通过调用  toString()方法将StringBuffer类型转换成String 类型
作者: wuyuecns    时间: 2014-4-7 23:17
调用toString()方法,这个是Object类继承的,用于将内容变为String类型。比如:
public class StringBufferDemo{
        public static void main(String args[]){
                StringBuffer buf = new StringBuffer() ;        // 声明StringBuffer对象
                buf.append("Hello ").append("World!!") ;                // 向StringBuffer添加内容
                String str=buf.toString();  //转换


                System.out.println("输出String类型" + str) ;        // 输出内容
        }
};
作者: hyace    时间: 2014-4-8 08:24
wuyuecns 发表于 2014-4-7 23:17
调用toString()方法,这个是Object类继承的,用于将内容变为String类型。比如:
public class StringBuffer ...

哦哦忘了还有这个了,谢谢啊~
作者: 向阳泪无痕    时间: 2014-4-8 08:37
本帖最后由 向阳泪无痕 于 2014-4-8 08:39 编辑

使用 StringBuffer 的重点就是,最后都会以 String 的形式返回该池中的内容。
和StringBulider 一样,最后也是以 String 返回

对于 String 加入到 StringBuffer 这不是叫转换,是把 String 加入到 缓冲池 StringBuffer
使用 appand( String )

作者: hyace    时间: 2014-4-8 08:52
向阳泪无痕 发表于 2014-4-8 08:37
使用 StringBuffer 的重点就是,最后都会以 String 的形式返回该池中的内容。
和StringBulider 一样,最后 ...

但是声明的一个StringBuffer类型是不能直接赋给String变量的啊
作者: 向阳泪无痕    时间: 2014-4-8 09:11
hyace 发表于 2014-4-8 08:52
但是声明的一个StringBuffer类型是不能直接赋给String变量的啊

使用 toString() 方法返回
StringBuffer s = new StringBuffer()
s.apand(String);

String s2 = s.toString();   //这里返回字符串

作者: hyace    时间: 2014-4-8 10:01
向阳泪无痕 发表于 2014-4-8 09:11
使用 toString() 方法返回
StringBuffer s = new StringBuffer()
s.apand(String);

恩对,也是二楼提醒了我才反应过来还能用它,谢谢啊~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2