import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Demo
{
/**
* 功能描述:查找一个字符串的字符串集 输入:abab 输出:a b ab ba aba bab
*
* @param args
*/
public static void main(String[] args)
{
List<String> childStr = getChildren("ababe");
Set<String> set = new TreeSet<String>();
Collections.sort(childStr);
for (int i = 0; i < childStr.size(); i++)
{
set.add(childStr.get(i));
}
System.out.println(set);
}
public static List<String> getChildren(String data)
{
List<String> list = new ArrayList<String>();
Set<String> set = new TreeSet<String>();
int length = data.length();
for (int j = 0; j < length; j++)
{
if (j == 0)
{
for (int i = 0; i < length-1; i++)
{
getChild(data, set, i);
}
} else if (j > 0)
{
String newStr = data.substring(j, data.length());
for (int i = 0; i < newStr.length(); i++)
{
getChild(newStr, set, i);
}
}
}
for (int i = 0; i < set.size(); i++)
{
list.add(set.toString());
}
return list;
}
/**
* @param data
* @param list
* @param i
*/
private static void getChild(String data, Set<String> list, int i)
{
String s = data.substring(0, i + 1);
list.add(s);
}
}
//哎,代码写的有点恶心.