如何在Java中反转字符串

时间:2020-01-09 10:35:31  来源:igfitidea点击:

在本文中,我们将介绍如何在Java中反转字符串。尽管Java中的StringBuffer和StringBuilder类具有可用于反转String的reverse()方法,但是可能会要求我们编写自己的逻辑以反转String。在那种情况下,我们也可以通过迭代或者递归来实现。这三个解决方案都在这里给出。

使用StringBuilder / StringBuffer类

public class ReverseString {
  public static void main(String[] args) {
    StringReverse("String reverse program in theitroad");
  }

  // Method using StringBulider class reverse method
  private static void StringReverse(String str){
    StringBuilder sb = new StringBuilder(str);
    System.out.println("Reversed String- " + sb.reverse().toString());
  }
}

输出:

Reversed String- edocpnk ni margorp esrever gnirtS

使用迭代方法来反转字符串

如果使用迭代方法来反转Java中的字符串,则需要从末尾开始循环String,并继续将每个字符添加到String中。

public class ReverseString {

	public static void main(String[] args) {
		StringReverse("String reverse program in theitroad");
	}

	// Method using StringBulider class reverse method
	private static void StringReverse(String str){
		StringBuilder sb = new StringBuilder();
		// read string backward
		for(int i = str.length() - 1; i >= 0; i--){
			sb.append(str.charAt(i));
		}
		System.out.println("Reversed String- " + sb.toString());
	}
}

输出:

Reversed String- edocpnk ni margorp esrever gnirtS

使用递归方法反转字符串

public class ReverseString {
  public static void main(String[] args) {
    String reversedString = StringReverse("test line");
    System.out.println("Reversed String- " + reversedString);
  }

  // Method using StringBulider class reverse method
  private static String StringReverse(String str){
    //base case
    if((str == null) || (str.length() <= 1)){
        return str;
    }
    // Take the substring from index 1 till last
    // append the char at index 0 at the last
    return StringReverse(str.substring(1)) + str.charAt(0);
  }
}

输出:

Reversed String- enil tset