package com.itheima; /** * 6.编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 * * @author zhulang */ public class Text6 { // 两个字符串相互的组合 // 1.先打印出第一排。 // 2.用一个字符串数组保存组合的字符串 // 3.打印2个就是 public static void main(String[] args) { // 1.如果是第一次 String s = "你怎么看"; // 2.拆分成为字符数组 char [] strChra= s.toCharArray(); String[] oldStr= new String[strChra.length]; //创建异地一个字符数组 for (int i = 0; i < strChra.length; i++) { oldStr[i]=strChra[i]+""; } //有几个字母就可能组合几次 for (int i = 0; i < strChra.length-1; i++) { oldStr = getStr(strChra, oldStr); if (i==1) { //刚好第二次就打印 Show(oldStr); } } } //给数组进行组合排序。 public static String[] getStr(char[] sChar, String[] oldStr) { String str = ""; //外层,控制组合 for (int i = 0; i < oldStr.length; i++) { //内层主要用于组合的字符 for (int j = 0; j < sChar.length; j++) { if (oldStr[i].indexOf(sChar[j])>=0) { //如果有相同的字符那么就不下一次 continue; } //没有相同的就组合 str = str+oldStr[i]+sChar[j]+","; } } //用拆分用问好分割字符 oldStr = str.split(","); return oldStr; } //给数组进行输出 public static void Show(String[] str) { int i= 0; for (i = 0; i < str.length; i++) { if(i==10) System.out.println(); System.out.print(" "+str[i]); } System.out.println(" 共计"+i+"种"); } }