微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java反转字符串的10种方法

这篇文章主要介绍了Java反转字符串的10种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来一起学习一下吧

在这文章中,我们会讨论10种用Java反转字符串的方法,通过10个Java程序反转字符串。例如,把字符串“javaguides” 反转为 “sediugavaj”。

1. 使用 + (String连接) 操作符

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseWithStringConcat { public static void main(String[] args) { ReverseWithStringConcat concat = new ReverseWithStringConcat(); concat.reverseWithStringConcat("javaguides"); } private String reverseWithStringConcat(String input) { String output = new String(); for (int i = (input.length() - 1); i >= 0; i--) { output += (input.charat(i)); } display(input, output); return output; } 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

2. 使用 StringBuilder

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseWithStringBuilderBuiltinMethod { public static void main(String[] args) { ReverseWithStringBuilderBuiltinMethod builtinMethod = new ReverseWithStringBuilderBuiltinMethod(); builtinMethod.reverseWithStringBuilderBuiltinMethod("javaguides"); } public String reverseWithStringBuilderBuiltinMethod(String string) { final StringBuilder builder = new StringBuilder(string); display(string, builder.reverse().toString()); return builder.reverse().toString(); } 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

3. 使用 String charat 方法

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseWithStringChatAt{ public static void main(String[] args) { ReverseWithStringChatAt reverseWithStringBuilder = new ReverseWithStringChatAt(); reverseWithStringBuilder.reverseWithStringBuilder("javaguides"); } public String reverseWithStringChatAt(String string) { final StringBuilder builder = new StringBuilder(); for (int i = (string.length() - 1); i >= 0; i--) { builder.append(string.charat(i)); } display(string, builder.toString()); return builder.toString(); } 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

4. 通过交换字符反转

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseStringWithSwaps { public static void main(String[] args) { ReverseStringWithSwaps stringWithSwaps = new ReverseStringWithSwaps(); stringWithSwaps.reverseWithSwaps("javaguides"); } public String reverseWithSwaps(String string) { final char[] array = string.tochararray(); final int length = array.length - 1; final int half = (int) Math.floor(array.length / 2); char c; for (int i = length; i >= half; i--) { c = array[length - i]; array[length - i] = array[i]; array[i] = c; } 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

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

输出

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 stack = new Stack (); // push every character of the given string into the stack char[] ch = str.tochararray(); for (int i = 0; i

输出

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 list = new ArrayList (); // 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); return builder.toString(); } public static void main(String[] args) { String str = "Java Guides"; // String is immutable str = reverse(str); System.out.println("Reverse of the given string is : " + str); } }

输出

Reverse of the given string is : sediuG avaJ

8. 使用 Byte 数组

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class ReverseStringUsingByteArray { // Function to reverse a string in Java using byte array public static String reverse(String str) { // return if string is null or empty if (str == null || str.equals("")) return str; // convert string into bytes byte[] bytes = str.getBytes(); // start from the two end points l and h of the given string // and increment l & decrement h at each iteration of the loop // until two end-points intersect (l >= h) for (int l = 0, h = str.length() - 1; l

输出

Reverse of the given string is : sediuG avaJ

9. 使用 substring() 方法

package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class UsingSubStringFunction { // Function to reverse a string in Java using recursion private static String reverse(String str) { // base case: if string is null or empty if (str == null || str.equals("")) return str; // last character + recurse for remaining string return str.charat(str.length() - 1) + reverse(str.substring(0, str.length() - 1)); } public static void main(String[] args) { String str = "javaguides"; // string is immutable str = reverse(str); System.out.println("Reverse of the given string is : " + str); } }输出:Reverse of the given string is : sediugavaj10. 使用递归package net.javaguides.corejava.string; /** * * @author Ramesh Fadatare * */ public class UsingRecursion { static int i = 0; // Recursive function to reverse a string in Java using static variable private static void reverse(char[] str, int k) { // if we have reached the end of the string if (k == str.length) return; // recurse for next character reverse(str, k + 1); if (i输出:Reverse of the given string is : sediuG avaJ以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐