黑马程序员技术交流社区

标题: 编程列出一个字符串组合情况,原始字符串中没有重复字符, [打印本页]

作者: 北山璎珞    时间: 2015-11-9 23:31
标题: 编程列出一个字符串组合情况,原始字符串中没有重复字符,
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());
                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2