package com.itheima;
import java.util.Scanner;
/*
* @author xujie
* @version 1.0.1
* 问题:
* 编程列出一个字符串组合情况,原始字符串中没有重复字符,
* 例如:原始字符串是"abc"
* 打印得到下列所有组合情况:
* "a" "b" "c"
* "ab" "bc" "ca" "ba" "cb" "ac"
* "abc" "acb" "bac" "bca" "cab" "cba"
*
*/
public class Test5 {
private static int count=0;
public static void main(String[] args) {
Test5 ts=new Test5();
//输入一个字符串
Scanner s=new Scanner(System.in);
String w=s.nextLine();
ts.out("",w);
}
/**
*
* @param begin 字符串的前部分,不需要修改
* @param end 字符串的后半部分,
* 如果end长度为1,则begin+end
* 如果不为1:再次分割,得到1再进行拼接
*/
private void out(String begin, String end) {
/**
* 这种情况就是 ab+c类似
* 所以这里输出都是 同输入字符串一样长度的字符串
*/
if(end.length()==1){
System.out.println(begin+end);
return;
}
for(int i=0;i<end.length();i++){
StringBuilder s=new StringBuilder(end);
String str=begin+end.substring(i, i+1);
System.out.println(str);
//将该字符删除
out(str,s.deleteCharAt(i).toString());
}
}
}
|