本帖最后由 唐增友 于 2012-10-11 16:55 编辑
- import java.util.ArrayList;
- import java.util.List;
- public class GetString {
- /**
- * @param args
- */
- public static void main(String[] args) {
- //把 str 改成 123456 就是你要的结果了
- String str="123";
- char c[]=str.toCharArray();
- //待取出的数据集
- List<String> src=new ArrayList<String>();
- //储存取出数据的结果集
- List<String> obj=new ArrayList<String>();
- for(int i=0;i<c.length;i++){
- src.add(String.valueOf(c[i]));
- obj.add(String.valueOf(0));
- }
-
- //采用递归的方式
- getChar(src, obj, src.size());
-
- }
-
- public static void getChar(List<String> src,List<String> obj,int length){;
- //如果 待取出的数据集中有数据 继续填充 否则打印 结果集
- if(src.size()>0){
- for(int i=0;i<src.size();i++){
- obj.set(length-src.size(),src.get(i));
-
- //定义临时变量 传递给下一次 调用
- List<String> tmpsrc=new ArrayList<String>();
- for(int k=0;k<src.size();k++){
- tmpsrc.add(src.get(k));
- }
- //移除已经使用的元素
- tmpsrc.remove(i);
-
- //定义临时变量 传递给下一次 调用
- List<String> tmpobj=new ArrayList<String>();
- for(int k=0;k<obj.size();k++){
- tmpobj.add(obj.get(k));
- }
- //递归 直到src 中没有数据
- getChar(tmpsrc, tmpobj, length);
- }
- }else{
- System.out.println(obj);
- }
-
- }
- }
复制代码 结果:[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1] |