A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 没有翅膀的小鸟 中级黑马   /  2014-7-6 22:45  /  1134 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String类是比较常用到的类,里面有很多功能。有一个小小的疑问,字符串反转的方法,为什么要先转换成数组,通过数组的形式反转,然后再转回成字符串。不能直接以字符串的形式反转么?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

5 个回复

倒序浏览
StringBuilder与StringBuffer类中的reverse方法就是反转

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
字符串反转方法不是在String 类下的,是在StringBuffer或StringBuilder这两个类里都有这个方法,这两个类方法是一样的,区别在于StringBuffer线程安全,效率低,StringBuilder线程不安全,效率高,一般采用效率高的StringBuilder类,后面的学习中老师会讲到如何解决不安全的问题;说回反转这个方法,看如下代码
  1. public class StringBuilderDemo {
  2.      public static void main(String[] args) {
  3.             // 创建对象
  4.             StringBuilder builder = new StringBuilder();
  5.             String s="霞青林爱我";//这里是一个String类的对象
  6.             builder.append(s);//将对象当作参数传递返回StringBuilder类型的对象
  7.             builder.reverse();//调用方法反转,再输出
  8.             System.out.println(builder);
  9.      }
  10. }

复制代码

输出结果为  我爱林青霞
看看能不能理解?

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1

查看全部评分

回复 使用道具 举报
example:
String s="abc";
StringBuilder sb=new StringBuilder(s);
sb.reverse();
System.out.println(sb.toString());
打印结果:
cba
回复 使用道具 举报
首先,3楼说了,字符串反转方法不是在String 类下的,是在StringBuffer或StringBuilder这两个类里。
其次,不知道你说的“先转换成数组,通过数组的形式反转,然后再转回成字符串”是指什么。StringBuilder和StringBuffer的内部数据结构就是一个字符数组,如果你看reverse方法的源代码就会发现,反转就是直接对数组操作,不存在先从字符串转数组,然后再转回字符串的情况
回复 使用道具 举报
玉遥 发表于 2014-7-6 23:17
字符串反转方法不是在String 类下的,是在StringBuffer或StringBuilder这两个类里都有这个方法,这两个类方 ...

学习到了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马