如何在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。
