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

Учебник по основам Java

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

Java массивы

Java направленный на объекты (I)

Java направленный на объекты (II)

Ориентированное на объекты программирование Java (III)

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

Список List Java

Очередь Queue Java

Множество Map Java

Множество Set Java

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

Reader/Writer Java

Другие темы Java

Программа Java для вычисления всех комбинаций строк

Java полный список примеров

В этом примере мы изучим расчет всех комбинаций строк в Java.

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

Перестановка строки - это все возможные новые строки, которые можно сформировать, изменяя положение символов в строке. Например, строка ABC Имеющиеся комбинации [ABC, ACB, BAC, BCA, CAB, CBA].

Пример: Программа на Java для получения всех комбинаций строк

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
class Main {
  public static Set<String> getPermutation(String str) {
    //Создать множество set, чтобы избежать повторяющихся排列
    Set<String> permutations = new HashSet<String>();
    //Проверить, не пуста ли строка
    if (str == null) {
      return null;
    } else if (str.length() == 0) {
      //Условие终止а рекурсии
      permutations.add("");
      return permutations;}
    }
    //Получить первый символ
    char first = str.charAt(0);
    //Получить оставшуюся подстроку
    String sub = str.substring(1);
    //Рекурсивный вызов getPermutation()
    Set<String> words = getPermutation(sub);
    //Пройти words
    for (String strNew : words) {
      for (int i = 0; i <= strNew.length(); i++) {
        //Вставить排列 в множество set
        permutations.add(strNew.substring(0, i) + first + strNew.substring(i));
      }
    }
    return permutations;}
  }
  public static void main(String[] args) {
    // Создать объект класса Scanner
    Scanner input = new Scanner(System.in);
    // Принимать ввод пользователя
    System.out.print("Ввод строки: ");
    String data = input.nextLine();
    System.out.println(data + "的组合有:\n" + getPermutation(data));
    }
}

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

Ввод строки: ABC
Комбинации ABC: 
[ACB, BCA, ABC, CBA, BAC, CAB]

В Java мы используем рекурсию для вычисления всех комбинаций строк. Здесь мы храним перечисления в множестве. Таким образом,不会有 повторяющиеся комбинации.

Java полный список примеров