为了账号安全,请及时绑定邮箱和手机立即绑定

剑指offer-----反转字符串

标签:
Java 算法

这个面试被问到过,我当时就用char和StringBuffer写出来了,面试官还问我有没有其它的,没写出来,

现在总结三种方法,仅供参考

  1. 利用字符数组,没两个做swap交换


  2.    public static  String reverse(String str) {

  3.         if((null== str) || (str.length() <=1)) {

  4.             return str;

  5.         }

  6.         char[] chars = str.toCharArray();

  7.         int right = chars.length -1;

  8.         for(int left =0; left < right; left++) {

  9.             char swap = chars[left];

  10.             chars[left] = chars[right];

  11.             chars[right--] = swap;

  12.         }

  13.         return new String(chars);

  14.     }

2.StringBuffer的append方法

public String reverse(String str) {

        if((null== str) || (str.length() <=1)) {

            Return str;

        }

        StringBuffer reverse =new StringBuffer(str.length());

        for(int i = str.length() -1; i >=0; i--) {

          reverse.append(str.charAt(i));

        }

        return reverse.toString();

    }

3.第三种方法思想跟第一种一样,也是做交换,调用了StringBuffer的setCharAt()方法

   public static String reverse(String str)

    {

    if((null== str) || (str.length()  <=1)) {

             return str;

         }

    StringBuffer result=new StringBuffer(str);

    for(int i=0;i<(result.length()/2);i++)

    {

    int swapIndex = str.length() -1- i;

             char swap = result.charAt(swapIndex);

             result.setCharAt(swapIndex, result.charAt(i));

             result.setCharAt(i, swap);

    }

return str.toString();

   

    }


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消