java字符串反转的7种方法

目录
  • 1、用stringBuffer或者stringBuilder自带的reverse方法
  • 2、将字符串拆分为char数组
  • 3、stringBuffer倒序拼接
  • 4、利用栈的先进后出
  • 5、二分换位反转
  • 6、切割递归反转
  • 7、二分递归反转

1、用stringBuffer或者stringBuilder自带的reverse方法

    public static String reverseTestOne(String s) {
        return new StringBuffer(s).reverse().toString();
    }

2、将字符串拆分为char数组

    public static String reverseTestTwo(String s) {
        char[] charArray = s.toCharArray();
        int start = 0, end = charArray.length - 1;
        for (; start < end; start++, end--) {
            charArray[start] ^= charArray[end];//采用异或
            charArray[end] ^= charArray[start];
            charArray[start] ^= charArray[end];
        }
        return new String(charArray);
    }

两数交换除了用异或还能用其他方法,请移步不借助第三变量实现两数交换

3、stringBuffer倒序拼接

    public static String reverseTestThree(String s) {
        StringBuffer sb = new StringBuffer();
        for (int i = s.length() - 1; i >= 0; i--) {
            sb.append(s.charAt(i));
        }
        return sb.toString();
    }

4、利用栈的先进后出

    public static String reverseTestFour(String s) {
        StringBuffer sb = new StringBuffer();
        Stack stack = new Stack();
        for (int i = 0; i < s.length(); i++) {
            stack.push(s.charAt(i));
        }
        while (!stack.isEmpty()) {
            //stack会返回栈顶值,并且会把该值删除
            sb.append(stack.pop());
        }
        return sb.toString();
    }

5、二分换位反转

    public static String reverseTestFive(String s) {
        int start = 0;
        int end = s.length() - 1;
        char[] charArray = s.toCharArray();
        while (start < end) {
            //交换首尾char值
            char c = charArray[end];
            charArray[end] = charArray[start];
            charArray[start] = c;
            start++;
            end--;
        }
        return new String(charArray);
    }

6、切割递归反转

    public static String reverseTestSix(String s) {
        if (s.length() <= 1) {
            return s;
        }
        return reverseTestSix(s.substring(1)) + s.substring(0, 1);
    }

7、二分递归反转

    public static String reverseTestSeven(String s) {
        int length = s.length();
        if (length <= 1) return s;
        String left = s.substring(0, length / 2);
        String right = s.substring(length / 2, length);
        return reverseTestSeven(right) + reverseTestSeven(left);
    }

到此这篇关于java字符串反转的7种方法的文章就介绍到这了,更多相关java字符串反转内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 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.r

  • JAVA多种方法实现字符串反转

    本人自己思考+网络搜罗,分类整理了以下4类9种方法: A类:使用JAVA原生方法 -A1:使用StringBuffer的reverse方法 -A2:使用StringBuilder的reverse方法 B类:遍历字符串(字符数组)实现 -B1:将字符串转变为字符数组,遍历该数组的一半,依次将头尾开始对应的字符交换 -B2:逆向遍历s,正序拼接出一个新的字符串 -B3:正向遍历s,将取出的字符拼接形成中间字符串,将中间字符串拼接在下一个字符的后面 -B4:从首位两边同时遍历,交换首位下标位置的字符(

  • java实现字符串反转案例

    本文实例为大家分享了java实现字符串反转的具体代码,供大家参考,具体内容如下 1.需求: 定义一个方法,实现字符串反转.键盘录入一个字符串,调用该方法后,在控制台输出结果 例如,键盘录入abc,输出结果cba 2.思路: 1.键盘录入一个字符串,用Scanner实现 2.定义一个方法,实现字符反转.返回值类型String,参数String s 3.在方法中把字符串倒着遍历,然后把每一个得到的字符拼接成一个字符串并返回 4.调用方法, 用一个变量接收结果 5.输出结果 3.代码实现 import

  • Java反转字符串的10种方法

    在这篇文章中,我们会讨论10种用Java反转字符串的方法,通过10个Java程序反转字符串.例如,把字符串"javaguides" 反转为 "sediugavaj". 1. 使用 + (String连接) 操作符 package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseWithStringConcat { public stati

  • Java实现的简单字符串反转操作示例

    本文实例讲述了Java实现的简单字符串反转操作.分享给大家供大家参考,具体如下: 最常用的方式是,反向取出每个字符,然后打印: public class StringReverse { public static void main(String[] args) { // 原始字符串 String s = "A quick brown fox jumps over the lazy dog."; System.out.println("原始的字符串:" + s);

  • java 字符串反转的实例详解

    java 字符串反转的实例详解 1.new StringBuffer("abcde").reverse().toString(); 2.通过char数组进行转换, 代码如下 package com.test.reverse; public class TestReverse { public static void main(String[] args) { // 声明任意字符串 String str = "abcde"; //将字符串转换成char[] char[

  • Java 字符串反转实现代码

     Java 字符串反转 问题: 给一个字符串,比如 "I love china", 把字符反转后变成 "china love I" 思路: 先把字符串从第一个字符与最后一个字符对换,第二个字符和倒数第二个字符对换,这样,我们就把每一个单词位置互换了.但是我们要求单词里面字符的顺序是不能变的,所以,我们要把每一个单词里面的字符从头到尾对换一下.这样就可以得到我们想要的字符串了. 实现: 因为这里两次都会用到字符反转,所以我们就单独写一个swap的方法出来.我们对每个单

  • java字符串反转示例分享

    思路: 将字符串变成数组,对数组反转将反转后的数组变成字符串只要将反转的部分的开始和结束的位置作为参数传递即可 复制代码 代码如下: class reverse_String{    public static void main (String[] args){        String s1 = "      java php .net    ";        String s2 = reverseString(s1);        System.out.println(s2

  • JAVA字符串反转的三种方法

    方法一:使用StringBuilder import java.util.Scanner; public class StrReversal { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); System.out.println(new StringBuilder(str).reverse()); } } 方法二

  • 使用位运算、值交换等方式反转java字符串的多种方法(四种方法)

    在本文中,我们将向您展示几种在Java中将String类型的字符串字母倒序的几种方法. StringBuilder(str).reverse() char[]循环与值交换 byte循环与值交换apache-commons-lang3 如果是为了进行开发,请选择StringBuilder(str).reverse()API.出于学习的目的,我们可以研究char[]和byte方法,其中涉及到值互换和移位运算技术,这些技术对于了解StringBuilder(str).reverse()API黑匣子背后

随机推荐