在此示例中,我們將檢查Java中兩個(gè)字符串是否為字母易位詞(anagram),一種把某個(gè)詞或句子的字母的位置(順序)加以改換所形成的新詞。
如果我們可以通過(guò)排列另一個(gè)字符串的字符來(lái)形成一個(gè)字符串,則可以說(shuō)兩個(gè)字符串是字謎。例如,Race 與 Care。在這里,我們可以通過(guò)重新安排Care字母順序來(lái)組成單詞 Race。
import java.util.Arrays;
class Main {
public static void main(String[] args) {
String str1 = "Java";
String str2 = "Vaaj";
//檢查長(zhǎng)度是否相同
if(str1.length() == str2.length()) {
//將字符串轉(zhuǎn)換為字符數(shù)組
char[] charArray1 = str1.toCharArray();
char[] charArray2 = str2.toCharArray();
//對(duì)字符數(shù)組進(jìn)行排序
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中,我們有兩個(gè)名為str1和str2的字符串。在這里,我們檢查str1和str2是否是字母數(shù)相同,但是順序不同。
這里,
str1.toCharArray() - 將字符串轉(zhuǎn)換為char數(shù)組
Arrays.sort() - 對(duì)兩個(gè)字符數(shù)組進(jìn)行排序
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類(lèi)的對(duì)象
Scanner input = new Scanner(System.in);
//接受用戶(hù)的輸入
System.out.print("輸入第一個(gè)字符串: ");
String str1 = input.nextLine();
System.out.print("輸入第二個(gè)字符串: ");
String str2 = input.nextLine();
//檢查長(zhǎng)度是否相同
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é)果
輸入第一個(gè)字符串: Race 輸入第二個(gè)字符串: Care Race 和 Care 是字母易位詞
在上面的示例中,我們使用Scanner類(lèi)從用戶(hù)那里獲取輸入。在這里,我們檢查了用戶(hù)提供的字符串是否為字母易位詞。