黑马程序员技术交流社区

标题: 总结String类和StringBuffer类时遇到的一个思考题 [打印本页]

作者: 人在旅途~东营    时间: 2015-6-1 22:12
标题: 总结String类和StringBuffer类时遇到的一个思考题
String类和StringBuffer类在常见API中绝对是最常用到的,总结的时候看到一个问题不错,拿来跟大家分享下
如何实现StringBufferString的相互转换?

StringBuffer 转换到 String的方式:

1.       通过String类的构造方法

2.       通过StringBuffer类中的toString()方法

3.       通过StringBuffer类中的substring()方法 (注:不常用)

String 转换到 StringBuffer的方式:

1.      通过StringBuffer类的构造方法

2.      通过StringBuffer类的append()、insert()方法




作者: 张凝宁    时间: 2015-6-1 22:13
黑马赞!!!!
作者: l598790586    时间: 2015-6-1 22:21
赞一个,有些东西就是联系不起来!
作者: 人在旅途~东营    时间: 2015-6-1 22:29
张凝宁 发表于 2015-6-1 22:13
黑马赞!!!!

谢谢支持!多多交流啊!:lol
作者: 人在旅途~东营    时间: 2015-6-1 22:31
l598790586 发表于 2015-6-1 22:21
赞一个,有些东西就是联系不起来!

我也是啊,所以就回过头来再看看原来的代码,复习一下
作者: 守株人    时间: 2015-6-1 22:47
谢谢分享
作者: wuyusi    时间: 2015-6-2 00:12
谢谢分享
作者: 微凉的暮色    时间: 2015-6-2 00:29
附加代码就更好了
作者: 人在旅途~东营    时间: 2015-6-2 01:06
微凉的暮色 发表于 2015-6-2 00:29
附加代码就更好了

代码给你,调试的时候去掉注释即可
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                
  4.                 //String -->  StringBuffer
  5. //                StringBuffer sb = new StringBuffer();
  6. //                sb.append("Java");
  7. //                System.out.println(sb);
  8.                
  9.                 //StringBuffer --> String
  10.                 //方式1       
  11. //                StringBuffer sb = new StringBuffer("Hello");
  12. //                通过 toString()
  13. //                System.out.println(sb.toString());
  14. //                方式2
  15. //                通过String类的构造方法
  16. //                StringBuffer sb = new StringBuffer("Hello");
  17. //                String str = new String(sb);
  18. //                System.out.println(str);
  19. //                方式3
  20. //                3: 通过String类的方法  public static String valueOf(Object obj)
  21.                 StringBuffer sb = new StringBuffer("Hello");
  22.                 String result = String.valueOf(sb);
  23.                 System.out.println(result);
  24.                
  25.         }
  26. }
复制代码

作者: 半世心修    时间: 2015-6-2 06:48
赞一个~
作者: 施洋    时间: 2015-6-2 07:40
支持一下,也刚学到这里,复习了:)
作者: JesseZhu    时间: 2015-6-2 08:13
:lol谢谢分享
作者: 经济    时间: 2015-6-2 08:22
楼主总结的很好,但是StringBuffer,线程安全,效率比较低,jdk1.0出现的,如果你去看源码,确实好多地方用的是StringBuffer,但是,在开发中,最好用StringBulider代替,jdk1.5出现的,效率高,
作者: 武汉小菜鸟    时间: 2015-6-2 10:14
赞一个,太棒了
作者: 人在旅途~东营    时间: 2015-6-2 11:33
经济 发表于 2015-6-2 08:22
楼主总结的很好,但是StringBuffer,线程安全,效率比较低,jdk1.0出现的,如果你去看源码,确实好多地方用 ...

不错,现在开发中好像用StringBuilder比较多,因为高效,当涉及到多线程和安全问题时会用StringBuffer.谢谢兄弟的补充!
作者: 经济    时间: 2015-6-2 11:46
人在旅途~东营 发表于 2015-6-2 11:33
不错,现在开发中好像用StringBuilder比较多,因为高效,当涉及到多线程和安全问题时会用StringBuffer.谢谢 ...

嗯,没关系,不过据我所知,即使涉及线程安全问题,一般也不用StringBuffer,还是用StringBuilder,然后根据需要,自己加锁,
作者: as604049322    时间: 2015-6-2 11:50

作者: 白水丶    时间: 2015-6-2 12:29
赞一个~~
作者: 人在旅途~东营    时间: 2015-6-2 13:54
经济 发表于 2015-6-2 11:46
嗯,没关系,不过据我所知,即使涉及线程安全问题,一般也不用StringBuffer,还是用StringBuilder,然后根 ...

哦,好吧,学习了!:lol
作者: 追忆似水年华    时间: 2015-6-2 14:42
赞一个。





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