根据Wiki,“字谜是通过重新排列不同单词或短语的字母而形成的单词或短语,通常只使用所有原始字母一次。”
为了比较两个字符串是否是字谜,请检查它们的长度是否相等?如果是这样,则将这两个字符串转换为字符数组,然后对它们进行排序,并使用sort()
Arrays类的方法进行比较,如果两者相等,则给定两个字符串为字谜。
import java.util.Arrays; public class AnagramSample { public static void main(String args[]) { String str1 = "recitals"; String str2 = "articles"; if (str1.length()==str2.length()) { char[] arr1 = str1.toCharArray(); Arrays.sort(arr1); System.out.println(Arrays.toString(arr1)); char[] arr2 = str2.toCharArray(); Arrays.sort(arr2); System.out.println(Arrays.toString(arr2)); System.out.println(Arrays.equals(arr1, arr2)); if(arr1.equals(arr2)) { System.out.println("Given strings are anagrams"); } else { System.out.println("Given strings are not anagrams"); } } } }
输出结果
[a, c, e, i, l, r, s, t] [a, c, e, i, l, r, s, t] true Given strings are not anagrams