English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений в Java

Java Список (List)

Java Queue (очередь)

Java Map коллекция

Java Set коллекция

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Java программа проверяет, являются ли две строки алфавитными перестановками (сamenye字母 по порядку, различающиеся)

Java полная коллекция примеров

В данном примере мы проверим, являются ли две строки алфавитными перестановками (анаграммами) в Java, что является новым словом, образованным изменением位置的 (порядка) букв в слове или предложении.

Если мы можем перевернуть символы другого слова, чтобы получить строку, то можно сказать, что две строки являются кроссвордами. Например,Race и CareЗдесь, мы можем перевернуть буквы Care, чтобы получить слово Race.

Пример 1: Программа Java для проверки, являются ли две строки анаграммами

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 равны, то строки являются анаграммами.

Пример 2: Получение строкового ввода от пользователя и проверка, являются ли строки анаграммами

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Классы получают ввод от пользователя. Здесь мы проверяем, является ли предоставленный пользователем строка字母易互换词.

Java полная коллекция примеров