在此示例中,我們將檢查Java中兩個字符串是否為字母易位詞(anagram),一種把某個詞或句子的字母的位置(順序)加以改換所形成的新詞。
如果我們可以通過排列另一個字符串的字符來形成一個字符串,則可以說兩個字符串是字謎。例如,Race 與 Care。在這里,我們可以通過重新安排Care字母順序來組成單詞 Race。
import java.util.Arrays; class Main { public static void main(String[] args) { String str1 = "Java"; String str2 = "Vaaj"; //檢查長度是否相同 if(str1.length() == str2.length()) { //將字符串轉(zhuǎn)換為字符數(shù)組 char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); //對字符數(shù)組進行排序 Arrays.sort(charArray1); Arrays.sort(charArray2); //如果排序的字符數(shù)組相同 //那么字符串是 anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " 和 " + str2 + " 是字母易位詞."); } else { System.out.println(str1 + " 和 " + str2 + " 不是字母易位詞."); } } } }
輸出結(jié)果
Java 和 Vaaj 是字母易位詞
在Java中,我們有兩個名為str1和str2的字符串。在這里,我們檢查str1和str2是否是字母數(shù)相同,但是順序不同。
這里,
str1.toCharArray() - 將字符串轉(zhuǎn)換為char數(shù)組
Arrays.sort() - 對兩個字符數(shù)組進行排序
Arrays.equal() - 檢查排序的char數(shù)組是否相等
如果排序的數(shù)組相等,則字符串為 anagram(字母易位詞)。
import java.util.Arrays; import java.util.Scanner; class Main { public static void main(String[] args) { //創(chuàng)建Scanner類的對象 Scanner input = new Scanner(System.in); //接受用戶的輸入 System.out.print("輸入第一個字符串: "); String str1 = input.nextLine(); System.out.print("輸入第二個字符串: "); String str2 = input.nextLine(); //檢查長度是否相同 if(str1.length() == str2.length()) { //將字符串轉(zhuǎn)換為char數(shù)組 char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); //排序char數(shù)組 Arrays.sort(charArray1); Arrays.sort(charArray2); //如果排序的char數(shù)組相同 //那么字符串就是字母易位詞 boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " 和 " + str2 + " 是字母易位詞."); } else { System.out.println(str1 + " 和 " + str2 + " 不是字母易位詞."); } } input.close(); } }
輸出結(jié)果
輸入第一個字符串: Race 輸入第二個字符串: Care Race 和 Care 是字母易位詞
在上面的示例中,我們使用Scanner類從用戶那里獲取輸入。在這里,我們檢查了用戶提供的字符串是否為字母易位詞。