`

java实现字符串反转的6种方法

 
阅读更多
package com.mplus;

import java.util.Stack;

/**
* Created by alex on 16-5-15.
*/
public class ReverseStringDemo {
    static String reverseM1(String str) {
        StringBuffer sb = new StringBuffer();
        for (int i = str.length() - 1; i >= 0; i --) {
            sb.append(str.charAt(i));
        }

        return sb.toString();
    }
    static String reverseM2(String str) {
        StringBuffer reverse = new StringBuffer();

        Stack stack = new Stack();
        for (int i = 0; i < str.length(); i ++) {
            stack.push(str.charAt(i));
        }

        while (!stack.isEmpty()) {
            reverse.append(stack.pop());
        }

        return reverse.toString();
    }

    static String reverseM3(String str) {
        StringBuffer sb = new StringBuffer(str);
        return sb.reverse().toString();
    }

    /**
     * 折半反转
     * @param str
     * @return
     */
    static String reverseM4(String str) {
        int start = 0;
        int end = str.length() - 1;

        char[] cArr = str.toCharArray();

        while(start < end) {
            char c = cArr[end];
            cArr[end] = cArr[start];
            cArr[start] = c;
            start ++;
            end --;
        }
        return new String(cArr);
    }

    /**
     * 采用异或
     * @param str
     * @return
     */
    static String reverseM5(String str) {
        char[] cArr = str.toCharArray();

        int start = 0, end = cArr.length - 1;

        for (;start < end; start ++, end --) {
            cArr[start] ^= cArr[end];//采用异或
            cArr[end] ^= cArr[start];
            cArr[start] ^= cArr[end];
        }

        return new String(cArr);
    }

    /**
     * 采用递归
     * @param str
     * @return
     */
    static String reverseM6(String str) {
        if (str.length() == 1) {
            return str;
        }

        return reverseM6(str.substring(1)) + str.substring(0,1);
    }

    public static void main(String[] args) {
        System.out.println(reverseM1("abcdef"));
        System.out.println(reverseM2("abcdef"));
        System.out.println(reverseM3("abcdef"));
        System.out.println(reverseM4("abcdef"));
        System.out.println(reverseM5("abcdef"));
        System.out.println(reverseM6("abcdef"));
    }
}


  


  
分享到:
评论

相关推荐

    java 用递归实现字符串反转

    ### Java使用递归实现字符串反转 在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础...

    java递归字符串反转

    网上绝大部分java递归实现字符串反转缺少字符串判空条件,我加了上去。

    使用几种常见的方法实现字符串反转

    ### 使用几种常见的方法实现字符串反转 #### 知识点一:使用`BufferedReader`实现字符串反转 在Java中,可以通过`BufferedReader`类从字符流中读取文本,并利用循环来实现字符串的反转。 1. **引入必要的包**: ...

    java将字符串反转几种方法总结.rar

    这篇总结主要探讨了多种在Java中实现字符串反转的方法,适合初学者学习和理解。下面,我们将详细解析这些方法。 1. **StringBuilder或StringBuffer的reverse()方法** `StringBuilder`和`StringBuffer`类提供了内置...

    java实现字符串反转

    "java实现字符串反转" Java 实现字符串反转是指将一个字符串的字符顺序颠倒过来,例如将字符串 "hello" 反转成 "olleh"。本文将为大家详细介绍 Java 实现字符串反转的多种方法,包括使用内置类、左到右拼接字符串、...

    将输入的字符串反转 java

    本文将深入探讨如何在Java中实现字符串反转,并提供一个具体的示例来解释这一过程。 首先,我们要理解Java中的字符串是不可变对象,这意味着一旦创建了字符串对象,就不能更改它的值。因此,反转字符串通常涉及创建...

    java 字符串反转

    在本篇中,我们将深入探讨如何在Java中实现字符串反转,特别是在处理多个字符串时。 首先,让我们从基本的字符串反转方法开始。Java提供了`StringBuilder`或`StringBuffer`类,它们是可变的字符序列,非常适合进行...

    将字符串反转

    字符串反转的方法有很多种,这里我们将探讨几种常见的编程语言中实现这一操作的方式。 1. **Python**: 在Python中,字符串是不可变对象,这意味着我们不能直接修改已存在的字符串。不过,我们可以利用切片...

    Java 实例 - 压栈出栈的方法实现字符串反转源代码-详细教程.zip

    本教程的详细资源包含在名为“Java实例 - 压栈出栈的方法实现字符串反转源代码-详细教程.rar”的压缩包中,涵盖了完整的Java源代码示例和详细的解释,非常适合初学者和有经验的开发者参考学习。通过学习这个实例,你...

    java实现字符串反转案例

    总的来说,这两种方法都可以实现字符串反转,但改进版使用`StringBuilder`更高效,因为它避免了不必要的字符串对象创建。在实际开发中,尤其是在处理大数据量或性能敏感的场景下,应优先考虑使用`StringBuilder`。...

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

    除了使用Java程序实现字符串反转操作外,还有许多在线工具可以实现字符串反转操作,例如在线文本倒序翻转排序工具。该工具可以在线将文本倒序翻转,非常方便。 Java字符串操作技巧总结 Java中的字符串操作技巧非常...

    JAVA字符串反转的三种方法

    本文将详细介绍三种在Java中实现字符串反转的方法。 方法一:使用StringBuilder类 StringBuilder是Java中的一个类,它提供了动态构建字符串的能力,支持字符串的修改。因此,反转字符串的一个有效方法是通过...

    《编程珠玑》中的最优性能效率最高字符串反转算法

    总的来说,《编程珠玑》中的最优性能效率最高字符串反转算法通过双指针法实现了原地反转,避免了额外的存储需求,提高了运行效率。这种算法设计思路不仅适用于字符串反转,还可以推广到其他需要高效交换元素的问题中...

    Java 实例 - 字符串反转源代码-详细教程.zip

    本教程将深入探讨如何在Java中实现字符串反转,包括基础方法和一些高级技巧。我们将通过源代码实例来详细讲解,以帮助你更好地理解和应用这些知识。 首先,Java中的字符串是不可变对象,这意味着一旦创建了一个字符...

    Java 字符串反转实现代码

    在 Java 中,我们可以使用 swap 方法来实现字符串反转。我们首先将字符串转换为字符数组,然后使用 swap 方法来交换字符。代码如下所示: ```java public static String reverseWords(String st) { int begin = 0;...

    (Java)反转字符串单词,但不改变标点符号的位置

    Stack是一种后进先出的数据结构,非常适合处理字符串反转的操作。在上面的代码中,我们使用了Java的Stack类来实现反转字符串单词的操作。 首先,我们定义了一个String类型的变量s,并将其初始化为"Hello, I need an...

    面试题今天(字符串反转)

    以上几种方法都可以用来实现字符串的反转,但每种方法都有其特点和适用场景: - **方法一**:适用于简单快速的反转需求,且易于理解。 - **方法二**:虽然代码实现相对复杂,但在某些特定场景下可能更为合适,例如当...

    Java 中的字符串反转.docx

    在 Java 编程中,字符串反转是一个常见的操作,特别是在处理文本数据时。本文将深入探讨在 Java 中如何反转字符串,并提供几种不同的实现方法。首先,我们需要了解 Java 中字符串的特性。 1. **字符串不可变性**:...

    java实现字符串逆序输出

    有两种主要方法可以实现字符串的逆序: 1. **使用`StringBuilder`或`StringBuffer`类**:这两个类提供了一些方便的方法来操作字符串,包括`reverse()`方法,可以直接用来反转字符串。以下是使用`StringBuilder`的...

    八种方法倒转字符串暂时

    2. **递归法**:通过递归调用来实现字符串反转,每次将第一个字符移到末尾,然后对剩余部分进行同样的操作。 3. **栈操作**:利用栈的后进先出(LIFO)特性,将字符串逐个字符入栈,再依次出栈得到反转的字符串。 ...

Global site tag (gtag.js) - Google Analytics