设为首页 加入收藏

TOP

Java反转字符串的10种方法(代码段)(二)
2018-11-21 20:08:56 】 浏览:570
Tags:Java 反转 字符串 方法 代码
alueOf(array)); return String.valueOf(array); } private void display(String input, String output) { System.out.println(" input string :: " + input); System.out.println(" output string :: " + output); } }

输出:

 input string :: javaguides
 output string :: sediugavaj

5. 使用 XOR(^) 操作符反转

package net.javaguides.corejava.string;
/**
 * 
 * @author Ramesh Fadatare
 *
 */
public class ReverseStringWithXOR {
    public static void main(String[] args) {
        ReverseStringWithXOR stringWithXOR = new ReverseStringWithXOR();
        stringWithXOR.reverseWithXOR("javaguides");
    }
    public String reverseWithXOR(String string) {
        final char[] array = string.toCharArray();
        final int length = array.length;
        final int half = (int) Math.floor(array.length / 2);
        for (int i = 0; i < half; i++) {
            array[i] ^= array[length - i - 1];
            array[length - i - 1] ^= array[i];
            array[i] ^= array[length - i - 1];
        }
        display(string, String.valueOf(array));
        return String.valueOf(array);
    }
    private void display(String input, String output) {
        System.out.println(" input string :: " + input);
        System.out.println(" output string :: " + output);
    }
}

输出:

 input string :: javaguides
 output string :: sediugavaj

6. 使用堆栈

package net.javaguides.corejava.string;
import java.util.Stack;
/**
 * 
 * @author Ramesh Fadatare
 *
 */
public class ReverseStringUsingStack {
    // Function to reverse a string in Java using a stack and character array
    public static String reverse(String str) {
        // base case: if string is null or empty
        if (str == null || str.equals(""))
            return str;
        // create an empty stack of characters
        Stack < Character > stack = new Stack < Character > ();
        // push every character of the given string into the stack
        char[] ch = str.toCharArray();
        for (int i = 0; i < str.length(); i++)
            stack.push(ch[i]);
        // start from index 0
        int k = 0;
        // pop characters from the stack until it is empty
        while (!stack.isEmpty()) {
            // assign each popped character back to the character array
            ch[k++] = stack.pop();
        }
        // convert the character array into string and return it
        return String.copyValueOf(ch);
    }
    public static void main(String[] args) {
        String str = "javaguides";
        str = reverse(str); // string is immutable
        System.out.println("Reverse of the given string is : " + str);
    }
}

输出:

Reverse of the given string is : sediugavaj

7. 使用 Collections reverse() 方法

package net.javaguides.corejava.string;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
 * 
 * @author Ramesh Fadatare
 *
 */
public class ReverseStringUsingCollectionsReverseMethod {
    // Function to reverse a string in Java using Collections.reverse()
    public static String reverse(String str) {
        // base case: if string is null or empty
        if (str == null || str.equals(""))
            return str;
        // create an empty list of characters
        List < Character > list = new ArrayList < Character > ();
        // push every character of the given string into it
        for (char c: str.toCharArray())
            list.add(c);
        // reverse list using java.util.Collections reverse()
        Collections.reverse(list);
        // covert ArrayList into String using StringBuilder and return it
        StringBuilder builder = new StringBuilder(list.size());
        for (Character c: list)
            builder.append(c);
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java调试检查表 下一篇SpringBoot系列一:SpringBoot入门

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目