【プログラミング問題】隣接する文字列のすべての組合せを出力する文字列を入力します.

3101 ワード

/**
 *        ,                。
     ,    abc,     a、b、c、ab、bc、abc。(  :         )(40 )
 * @param args
 */
public static void main(String args[]) {
    Scanner sc=new Scanner(System.in);
    String str=sc.nextLine();
    Set set=new HashSet();
    char[] cstr=str.toCharArray();
    for(int i=1;ilength+1;i++){//       cstr          
        for(int j=0;jlength-i+1;j++){//             
            StringBuilder sb=new StringBuilder();
            for(int k=j;k//     
                sb=sb.append(cstr[k]);
            }
            set.add(sb.toString());
        }
    }
    List list=new ArrayList<>();
    for(String value:set){
        list.add(value);
    }
    Collections.sort(list);
    for(int i=1;i<=cstr.length;i++) {
        for (String vl : list) {
            if(vl.length()==i) {
                System.out.print(vl + " ");
            }
        }
    }
}