全新的代码

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("\n共计"+i+"种");

    }

        

}

你可能感兴趣的:(代码)