java实现字符串反转

 更新时间:2017年05月09日 14:00:41   作者:wanlifeipeng  
这篇文章主要为大家详细介绍了java实现字符串反转,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java字符串反转的具体代码,供大家参考,具体内容如下

import java.util.Stack;

public class StringReverse {

  // 使用内置类(StringBuilder或StringBuffer)
  public static String reverse1(String s) {
    // StringBuilder strBuilder = new StringBuilder(s);
    // String ret = strBuilder.reverse().toString();
    StringBuffer strBuf = new StringBuffer(s);
    String ret = strBuf.reverse().toString();
    return ret;
  }

  // 有左到右 拼接字符串
  public static String reverse2(String s) {
    String ret = "";
    for (int i = 0; i < s.length(); ++i) {
      ret = s.charAt(i) + ret;
    }
    return ret;
  }

  // 从右到左 拼接字符串
  public static String reverse3(String s) {
    String ret = "";
    for (int i = s.length() - 1; i >= 0; --i) {
      ret += s.charAt(i);
    }
    return ret;
  }

  public static String reverse4(String s) {
    String ret = "";
    char[] charArr = s.toCharArray();
    int len = charArr.length;
    for (int i = 0; i < len / 2; ++i) {
      char tmp = charArr[i];
      charArr[i] = charArr[len - 1 - i];
      charArr[len - 1 - i] = tmp;
    }
    ret = new String(charArr);
    return ret;
  }

  // 使用异或
  public static String reverse5(String s) {
    String ret = "";
    char[] charArr = s.toCharArray();
    int begin = 0, end = charArr.length - 1;
    while (begin < end) {
      charArr[begin] = (char) (charArr[begin] ^ charArr[end]);
      charArr[end] = (char) (charArr[begin] ^ charArr[end]);
      charArr[begin] = (char) (charArr[begin] ^ charArr[end]);

      begin++;
      end--;
    }
    ret = new String(charArr);
    return ret;
  }

  // 使用栈
  public static String reverse6(String s) {
    String ret = "";
    Stack<Character> stack = new Stack<Character>();
    for (int i = 0; i < s.length(); ++i) {
      stack.push(s.charAt(i));
    }
    while (!stack.isEmpty()) {
      ret += stack.pop();
    }

    return ret;
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mybatisplus 的SQL拦截器实现关联查询功能

    mybatisplus 的SQL拦截器实现关联查询功能

    大家都知道mybatisplus不支持关联查询,后来学习研究发现mybatisplus的SQL拦截器可以实现这一操作,下面小编给大家分享我的demo实现基本的关联查询功能没有问题,对mybatisplus关联查询相关知识感兴趣的朋友一起看看吧
    2021-06-06
  • java异常和错误类总结(必看篇)

    java异常和错误类总结(必看篇)

    下面小编就为大家带来一篇java异常和错误类总结(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • Springboot 整合 RocketMQ 收发消息的配置过程

    Springboot 整合 RocketMQ 收发消息的配置过程

    这篇文章主要介绍了Springboot 整合 RocketMQ 收发消息,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • java使用计算md5校验码方式比较两个文件是否相同

    java使用计算md5校验码方式比较两个文件是否相同

    MD5文件效验码是一个判断文件是否是相同文件的途径,通过比较两个文件的Md5效验码是否相同来精确判断两个文件是否相同
    2014-04-04
  • 详解Java 10 var关键字和示例教程

    详解Java 10 var关键字和示例教程

    在本文中,我将通过示例介绍新的Java SE 10特性——“var”类型。你将学习如何在代码中正确使用它,以及在什么情况下不能使用它,需要的朋友可以参考下
    2018-10-10
  • Java实现ModbusTCP通信功能

    Java实现ModbusTCP通信功能

    使用ModbusTCP实现和硬件设备通信功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-08-08
  • Java经典用法总结

    Java经典用法总结

    这篇文章主要介绍了Java经典用法总结,在本文中,尽量收集一些java最常用的习惯用法,特别是很难猜到的用法,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • idea创建SpringBoot项目时Type选maven project和maven pom有何区别

    idea创建SpringBoot项目时Type选maven project和maven pom有何区别

    Maven是一个Java工程的管理工具,跟其相同功能的工具如Gradle,下面这篇文章主要给大家介绍了关于idea创建SpringBoot项目时Type选maven project和maven pom有何区别的相关资料,需要的朋友可以参考下
    2023-02-02
  • SpringMVC注解之@ResponseBody注解原理

    SpringMVC注解之@ResponseBody注解原理

    今天带大家分析一下@ResponseBody注解原理,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Java返回文件时为图片或pdf等设置在线预览或下载功能

    Java返回文件时为图片或pdf等设置在线预览或下载功能

    这篇文章主要介绍了Java返回文件时为图片或pdf等设置在线预览或下载功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01

最新评论