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+"种");
}
}