Saturday, April 4, 2020

Chương trình đảo chữ trong Java

Trong bài đăng này, chúng tôi sẽ viết các chương trình java để kiểm tra xem hai chuỗi có đảo chữ hay không. Chúng tôi sẽ thảo luận về 5 phương pháp khác nhau để kiểm tra chuỗi đảo chữ. Trước khi tiếp tục với chương trình Anagram trong java, trước tiên chúng ta cần biết đảo chữ có nghĩa là gì?

Đảo chữ là gì?

Nếu hai chuỗi chứa cùng một bộ ký tự nhưng theo thứ tự khác nhau thì hai chuỗi được gọi là đảo chữ.
Ví dụ:

  • "now" thành "won"

Bây giờ chúng ta biết ý nghĩa của đảo chữ cái. Hãy hiểu câu hỏi bằng cách viết ví dụ.
Input : "now","own"
Output : true
Input : "ton" , "not"
Output : true
Input : "hello" , "he"
Output : false
Mã giả cho chương trình đảo chữ trong java bằng phương thức sort () và equals ():

1. Chuyển đổi hai chuỗi thành chữ hoa và loại bỏ tất cả các khoảng trắng.
2. Chuyển đổi hai chuỗi thành mảng char bằng cách sử dụng toCharArray ().
3. Sắp xếp hai mảng ký tự bằng phương thức sort () của lớp java.util.Arrays.
4. Sau khi sắp xếp, chúng ta so sánh cả hai mảng bằng phương thức equals ().
import java.util.*;
import java.io.*;
public class Anagram
{
    public static void main (String[] args) throws java.lang.Exception
    {
        boolean result = isAnagram("now","own");
        System.out.println(result);
    }
    public static boolean isAnagram(String first, String second)
    {
        // remove all whitespaces and convert strings to lowercase
        first  = first.replaceAll("\\s", "").toLowerCase();
        second = second.replaceAll("\\s", "").toLowerCase();
        /* check whether string lengths are equal or not,
        if unequal then not anagram */
        if (first.length() != second.length())
        return false;
        // convert string to char array
        char[] firstArray = first.toCharArray();
        char[] secondArray = second.toCharArray();
        // sort both the arrays
        Arrays.sort(firstArray);
        Arrays.sort(secondArray);
        // checking whether both strings are equal or not
        return Arrays.equals(firstArray,secondArray);
    }
}

No comments:

Post a Comment