| 
 
| package cn.nusof.main; 
 import java.util.LinkedHashSet;
 import java.util.Set;
 
 public class Test {
 public static void main(String[] args) {
 String input = "abc"; // 求a/b/c三个字符的全排列
 Set<String> results = new LinkedHashSet<String>();
 results.add("");
 for (int i = 0; i < input.length(); i++) {
 for (int j = 0; j < input.length(); j++) {
 String current = input.substring(j, j + 1);
 Set<String> newones = new LinkedHashSet<String>();
 for (String s : results) {
 if (s.indexOf(current) == -1) {
 s += current;
 }
 newones.add(s);
 }
 results.addAll(newones);
 }
 }
 results.remove("");
 for (String s : results) {
 System.out.println(s);
 }
 }
 }
 | 
 |