获取一个字符串的所有子串 import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class StringSplit { private static Set<String> aa = new HashSet<String>();//存贮结果 public static void main(String[] args) { String a = "abcdefgh"; new StringSplit().split(a); Iterator<String> iterator = aa.iterator(); while (iterator.hasNext()) { String type = (String) iterator.next(); System.out.println(type); } } public List<String> split(String a){ String sub1 = "1"; String sub2 = "2"; if (a.length()==1) { //字符串长度为1不需要在进行切割 aa.add(a);//输入长度唯一时直接添加进set }else{ for(int i =1;i<a.length();i++){ sub1 = a.substring(i); sub2 = a.substring(0,i); aa.add(sub1); aa.add(sub2); split(sub1);//切割的两个字符串进行递归 split(sub2);//同上 } } return null; } }