Computer >> Máy Tính >  >> Lập trình >> Java

Cách dễ nhất để đảo ngược một chuỗi trong Java là gì?

Phương thức reverse () tích hợp sẵn

Lớp StringBuffer cung cấp cho bạn một phương thức có tên là reverse (). Nó đảo ngược nội dung của đối tượng StringBuffer hiện tại và trả về đối tượng StringBuffer kết quả. Đây là cách dễ nhất để đảo ngược một Sting bằng Java. Để làm như vậy -

  • Khởi tạo lớp StringBuffer bằng cách chuyển chuỗi bắt buộc làm tham số.

  • Gọi phương thức reverse () od đối tượng đã tạo.

  • Chuyển đổi lại thành chuỗi bằng phương thức toString ().

Ví dụ

public class Sample {
   public static void main(String args[]) {
      String str = new String("Hello how are you");
      StringBuffer sb = new StringBuffer(str);
      String str2 = sb.reverse().toString();
      System.out.println(str2);
   }
}

Đầu ra

uoy era woh olleH

Hãy để chúng tôi quan sát thêm hai cách để đảo ngược một chuỗi

Sử dụng đệ quy

Đệ quy là một quá trình gọi một hàm trong chính nó, sau chương trình java sẽ đảo ngược một Sting bằng cách sử dụng đệ quy -

Ví dụ

public class StringReverse {
   public String reverseString(String str) {
      if(str.isEmpty()) {
         return str;
      }else {
         return reverseString(str.substring(1))+str.charAt(0);
      }
   }
   public static void main(String[] args) {
      StringReverse obj = new StringReverse();
      String result = obj.reverseString("Tutorialspoint");
      System.out.println(result);
   }
}

Đầu ra

tniopslairotuT

Sử dụng toCharArray ()

Bạn cũng có thể chuyển đổi Chuỗi thành một mảng ký tự và hoán đổi các ký tự của mảng.

Để đảo ngược một mảng, hãy hoán đổi phần tử đầu tiên với phần tử cuối cùng và phần tử thứ hai với phần tử cuối cùng thứ hai, v.v., nếu mảng có độ dài lẻ, hãy để nguyên phần tử ở giữa.

Nếu tôi là phần tử đầu tiên của mảng (độ dài của mảng –i-1) do đó sẽ là phần tử cuối cùng, hoán đổi mảng [i] với mảng [(độ dài của mảng –i-1)] từ đầu đến điểm giữa của mảng -

Ví dụ

import java.util.Arrays;
public class StringReverse {
   public static void main(String[] args) {
      String str = "Tutorialspoint";
      char[] myArray = str.toCharArray();
      int size = myArray.length;
      for (int i = 0; i < size / 2; i++) {
         char temp = myArray[i];
         myArray[i] = myArray[size - 1 - i];
         myArray[size - 1 - i] = temp;
      }
      System.out.println("Array after reverse:: ");
      System.out.println(Arrays.toString(myArray));
   }
}

Đầu ra

Array after reverse::
[t, n, i, o, p, s, l, a, i, r, o, t, u, T]