English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java полная коллекция примеров
В данном примере мы проверим, являются ли две строки алфавитными перестановками (анаграммами) в Java, что является новым словом, образованным изменением位置的 (порядка) букв в слове или предложении.
Если мы можем перевернуть символы другого слова, чтобы получить строку, то можно сказать, что две строки являются кроссвордами. Например,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()) { // Преобразование строки в массив символов char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); // Сортировка массива символов Arrays.sort(charArray1); Arrays.sort(charArray2); // Если отсортированные массивы символов равны // Тогда строка является анаграммой boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " и " + str2 + " являются алфавитными置换词."); } else { System.out.println(str1 + " и " + str2 + " не являются алфавитными置换词."); } } } }
Результат вывода
Java и Vaaj являются анаграммами
В Java у нас есть две строки с именами str1 и str2. Здесь мы проверяем, являются ли str1 и str2 анаграммами, то есть имеют одинаковые字母, но в разном порядке.
Здесь,
str1.toCharArray() - Преобразование строки в массив char
Arrays.sort() - Сортировка двух массивов char
Arrays.equal() - Проверка, равны ли отсортированные массивы char
Если отсортированные массивы char равны, то строки являются анаграммами.
import java.util.Arrays; import java.util.Scanner; class Main { public static void main(String[] args) { //创建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()) { //将字符串转换为char数组 char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); //排序char数组 Arrays.sort(charArray1); Arrays.sort(charArray2); // Если отсортированные char массивы одинаковы // Тогда строка является алфавитным置换ом boolean result = Arrays.equals(charArray1, charArray2); if(result) { System.out.println(str1 + " и " + str2 + " являются алфавитными置换词."); } else { System.out.println(str1 + " и " + str2 + " не являются алфавитными置换词."); } } input.close(); } }
Результат вывода
Введи первую строку: Race Введи вторую строку: Care Race и Care - это字母易互换词
В предыдущем примере мы используемScannerКлассы получают ввод от пользователя. Здесь мы проверяем, является ли предоставленный пользователем строка字母易互换词.