Java Data Type How to - Create Permutations of characters








Question

We would like to know how to create Permutations of characters.

Answer

import java.util.ArrayList;
import java.util.List;
// w  w  w.j a  v a2 s  .c  om
public class Main {
  public static void main(String[] args) {
    String diagonal = "asdf";
    List<String> permutations = allPermutation("", diagonal);
    System.out.println("size is : " + permutations.size());
    System.out.println(permutations);
  }

  public static List<String> allPermutation(String permutation, String letters) {
    List<String> list = new ArrayList<>();
    if (letters.isEmpty()) {
      list.add(permutation);
      return list;
    }

    for (int i = 0; i < letters.length(); i++) {
      list.addAll(allPermutation(permutation + letters.charAt(i),
          removeCharAt(i, letters)));
    }

    return list;
  }

  public static String removeCharAt(int pos, String text) {
    return text.substring(0, pos) + text.substring(pos + 1, text.length());
  }
}