黑马程序员____字符串消重复求所有非空子串

来源:互联网 发布:黑暗网络lolita性奴 编辑:程序博客网 时间:2024/06/18 11:13

----------------------android培训java培训、期待与您交流! ----------------------

/*题目:用户给一个字符串例如"abcc",对此字符串消重,后求所有子串(例如本题的解是a/b/c/ab/ac/ba/ca/bc/cb/abc/...)*/import java.util.*;class GetSubStr{public static void main(String [] args){System.out.println(getSubSequences(eliminatingDuplicate()));}//正则表达式给字符串消重复public static String eliminatingDuplicate(){String str = "abcc";str = str.replaceAll("(.)\\1+","$1");return str;}//获取字符串的所有非空子串public static ArrayList<String> getSubSequences(String strings) {ArrayList<String> list = new ArrayList<String>();doGetSubSequences(strings, "", list);//消除空字符串list.remove("");//对集合进行排序Collections.sort(list);return list;}//获取字符串的所有子集含空集和自身private static void doGetSubSequences(String strings, String splits, ArrayList<String> list) {if (strings.length() == 0) {list.add(splits);return;}String tail = strings.substring(1);doGetSubSequences(tail, splits, list);doGetSubSequences(tail, splits + strings.charAt(0), list);}}

运行结果:

---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima


原创粉丝点击