A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

基础测试有这么一道题,我的想是嵌套循环,但是很片面,如果输入3个以上字符的字符串,我这程序就没用。那位大神教教思路。


/**
* 第七题:        编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:

                原始字符串是"abc",打印得到下列所有组合情况:
                "a" "b" "c"
                "ab" "bc" "ca" "ba" "cb" "ac"
                "abc" "acb" "bac" "bca" "cab" "cba"

*/

import java.io.*;
class Test7
{
        public static void main(String[] args) throws Exception
        {
                while(true)
                {
                         //键盘录入。
                        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
                        String line = bufr.readLine();
                        if("886".equals(line))
                                break;
                        //转换成字符数组。
                        char[] ch = line.toCharArray();
                       //单个字符。
                        for(int x=0;x<ch.length;x++)
                                System.out.print("“"+Character.toString(ch[x])+"”");
                        System.out.println();
                        //两个字符,每个位置都对字符数组遍历,除掉相同的。
                        for(int x=0;x<ch.length;x++)
                        {
                                for(int y=0;y<ch.length;y++)
                                {
                                        if(x!=y)
                                                System.out.print("“"+Character.toString(ch[x])+Character.toString(ch[y])+"”");
                                        continue;
                                }
                        }
                        System.out.println();
                         //三个字符组合。
                        for(int x=0;x<ch.length;x++)
                        {
                                for(int y=0;y<ch.length;y++)
                                {
                                        for(int z=0;z<ch.length;z++)
                                        if(x!=y&&x!=z&&y!=z)
                                                System.out.print("“"+Character.toString(ch[x])+Character.toString(ch[y])+Character.toString(ch[z])+"”");
                                        continue;
                                }
                        }
                        System.out.println();
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

3 个回复

倒序浏览
回复 使用道具 举报
ZSMAN 发表于 2015-5-4 12:17
看这里:http://bbs.itheima.com/forum.php?mod=viewthread&tid=117433

谢谢,看了代码,用了递归的思想。再去看看递归的应用知识。
回复 使用道具 举报
不错不错不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马