import java.util.Arrays; import java.util.LinkedList; import java.util.List; /** * java 列出一個字符串的全字符組合情況 * @author jiansx * @date 2015-7-18 */ public class Demo { private static String[] arr = {"A","B","C","D","E","F","G"}; public static void main(String[] args) { listAll(Arrays.asList(arr), ""); } /** * 將數(shù)組分為2部分,,前綴+數(shù)組 * 前綴 = 前綴+數(shù)組移除的字符 * 數(shù)組 = 數(shù)組移除字符后剩下的數(shù)組 * 將數(shù)組中字符數(shù)據(jù)移除完成后,前綴即數(shù)組中的數(shù)據(jù)任一排列的數(shù)組 */ public static void listAll(List candidate, String prefix) { if(prefix.length()==arr.length){ System.out.println(prefix); } for (int i = 0; i < candidate.size(); i++) { List tmp = new LinkedList(candidate); listAll(tmp, prefix + tmp.remove(i)); } } } |
|