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;
  }

}

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

相关文章

  • SpringCloud中的Seata基本介绍与安装教程

    SpringCloud中的Seata基本介绍与安装教程

    Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务,这篇文章主要介绍了SpringCloud之Seata基本介绍与安装,需要的朋友可以参考下
    2024-01-01
  • java基础-给出一个随机字符串,判断有多少字母?多少数字?

    java基础-给出一个随机字符串,判断有多少字母?多少数字?

    这篇文章主要介绍了java基础-给出一个随机字符串,判断有多少字母?多少数字?文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java中的信号量Semaphore详细解读

    Java中的信号量Semaphore详细解读

    这篇文章主要介绍了Java中的信号量Semaphore详细解读,Java信号量机制可以用来保证线程互斥,创建Semaphore对象传入一个整形参数,类似于公共资源,需要的朋友可以参考下
    2023-11-11
  • Java虚拟机装载和初始化一个class类代码解析

    Java虚拟机装载和初始化一个class类代码解析

    这篇文章的主要内容是Java虚拟机装载和初始化一个class类的代码解析,包括介绍了装载和初始化的时机与方式,需要的朋友可以参考下。
    2017-09-09
  • java使用链表来模拟栈的入栈出栈操作实例代码

    java使用链表来模拟栈的入栈出栈操作实例代码

    这篇文章主要介绍了java 使用链表来模拟栈的入栈出栈操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • SpringBoot整合gateway全过程

    SpringBoot整合gateway全过程

    这篇文章主要介绍了SpringBoot整合gateway全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 使用@CacheEvict 多参数如何匹配删除

    使用@CacheEvict 多参数如何匹配删除

    这篇文章主要介绍了使用@CacheEvict 多参数如何匹配删除,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • JAVA“无法验证证书。将不执行该应用程序。”提示解决办法

    JAVA“无法验证证书。将不执行该应用程序。”提示解决办法

    这篇文章主要给大家介绍了关于JAVA“无法验证证书,将不执行该应用程序”提示的解决办法,要解决Java无法验证证书的问题,可以尝试下本文的方法,需要的朋友可以参考下
    2024-03-03
  • java交换排序之奇偶排序实现方法

    java交换排序之奇偶排序实现方法

    这篇文章主要介绍了java交换排序之奇偶排序实现方法,实例分析了奇偶排序的原理与具体实现技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • Jvisualvm监控远程SpringBoot项目的过程详解

    Jvisualvm监控远程SpringBoot项目的过程详解

    这篇文章主要介绍了Jvisualvm监控远程SpringBoot项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04

最新评论