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 프로그램이 문자열의 모든 조합을 나열합니다

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);
    //getPersertion()를 재귀 호출합니다
    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 + 의 조합은 다음과 같습니다: 
" + getPermutation(data));
    }
}

출력 결과

입력 문자열: ABC
ABC의 조합은 다음과 같습니다: 
[ACB, BCA, ABC, CBA, BAC, CAB]

Java에서는 문자열의 모든 조합을 계산하기 위해 재귀를 사용했습니다. 여기서는 조합을 set集合에 저장합니다. 따라서 중복된 조합이 없습니다.

Java 예제 전체