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 программа для проверки, является ли строкаvalidной реорганизацией (перетасовкой) других двух строк

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

В этом примере мы проверим, является ли строкаvalidной реорганизацией (перетасовкой) других двух строк в Java.

Чтобы понять этот пример, вам следует знать следующееJava программированиеТема:

Пример: проверка, является ли строка эффективной перекомпоновкой других двух строк

class Main {
  //проверка, является ли строка результата эффективной раскладкой первой и второй строк
  static boolean shuffleCheck(String first, String second, String result) {
    //проверка, соответствует ли длина результата
    //общая сумма первых и вторых результатов
    if (first.length() + second.length() != result.length()) {
      return false;
    }
    //вариабли для отслеживания каждого символа в трёх строках
    int i = 0, j = 0, k = 0;
    //обход всех символов результата
    while (k != result.length()) {
      //проверка, совпадает ли первый символ результата с первым символом первой строки
      if (i < first.length() && first.charAt(i) == result.charAt(k)) {
        i++;
      //проверка, совпадает ли первый символ результата с первым символом второй строки
      }
        j++;
      //если символы не совпадают
      }
        return false;
      }
      //доступ к следующему символу результата
      k++;
    }
    //после доступа ко всем символам результата
     //если в первой или второй есть оставшиеся символы
    if (i < first.length() || j < second.length()) {
      return false;
    }
    return true;
  }
  public static void main(String[] args) {
    String first = "XY";
    String second = "12";
    String[] results = {"1XY2", "Y12X"};
    //вызов метода для проверки, является ли строка результата
    //first и second смешение
    for (String result : results) {
      if (shuffleCheck(first, second, result) == true) {
        System.out.println(result + " является " + first + " и " + second + " эффективной перекомпоновкой");
      }
      else {
        System.out.println(result + " не " + first + " и " + second + " эффективная перекомпоновка");
      }
    }
  }
}

Результат вывода

1XY2 является эффективной перекомпоновкой XY и 12
Y12X не является эффективной перекомпоновкой XY и 12

В примере выше, у нас есть строковой массив results. Он содержит две строки: 1XY2 и Y12X. Мы проверяем, являются ли эти две строки эффективными строками first(XY) и second(12).

Здесь, программа говорит, что 1XY2 является эффективной перемешиванием XY и 12. Но Y12X это не эффективное перемешивание.

Это потому что Y12X изменил порядок строк XY. Здесь, Y используется для предыдущего X. Поэтому, в качестве эффективной перекомпоновки, порядок строк должен быть сохранен.

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