全新的代码

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+"种");
    }
        
}
原文地址:https://www.cnblogs.com/ganwei/p/4551628.html