欢迎访问宙启技术站
智能推送

如何在Java中判断两个字符串是否互为Anagram?

发布时间:2023-07-02 14:27:03

在Java中判断两个字符串是否互为Anagram可以通过以下几个步骤实现:

1. 将两个字符串转换为字符数组,方便后续操作。

2. 判断两个字符数组的长度是否相等。由于Anagram的定义是两个字符串中的字符种类相同且每个字符的数量相等,所以如果字符数组长度不同,则不可能互为Anagram。

3. 将字符数组进行排序,可以使用Arrays.sort()方法或者自定义排序算法。

4. 比较排序后的两个字符数组是否相等。如果两个字符数组相等,则说明两个字符串互为Anagram。

下面是一个实现上述步骤的示例代码:

import java.util.Arrays;

public class Anagram {
    public static boolean isAnagram(String s1, String s2) {
        // 将字符串转换为字符数组
        char[] charArray1 = s1.toCharArray();
        char[] charArray2 = s2.toCharArray();

        // 判断字符数组长度是否相等
        if (charArray1.length != charArray2.length) {
            return false;
        }

        // 对字符数组进行排序
        Arrays.sort(charArray1);
        Arrays.sort(charArray2);

        // 比较排序后的字符数组是否相等
        return Arrays.equals(charArray1, charArray2);
    }

    public static void main(String[] args) {
        String s1 = "listen";
        String s2 = "silent";

        if (isAnagram(s1, s2)) {
            System.out.println(s1 + " and " + s2 + " are anagrams.");
        } else {
            System.out.println(s1 + " and " + s2 + " are not anagrams.");
        }
    }
}

运行上述代码,输出结果为:

listen and silent are anagrams.

这表明字符串"listen"和"silent"互为Anagram。