黑马程序员技术交流社区

标题: 关于for循环 [打印本页]

作者: 刘斌斌    时间: 2015-4-21 17:20
标题: 关于for循环
作测试题的时候遇见一道        /**

                8、 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如:


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

         */
public class Test8
{
                public static void main(String[]args)
                {
                        String s = "abc";//
                       
                        //将字符串s转换成一个字符数组
                        char[] arr = s.toCharArray();
                       
                        //思考,用数组的角标将数组中每个元素进行不同的排序
                        //非别输出一个元素,俩个元素,三个元素
                       
                        for(int x=0;x<arr.length;x++)       
                        {       
                                //分别输出字符数组中的每个元素
                                System.out.print(arr[x]+",");
               
                                for(int y=0;y<arr.length;y++)
                                {       
                                        //排除字符相同的情况
                                        if(x==y)
                                                continue;
                                        else
                                        {
                                                //将不同字符装入一个新的数组,
                                                char [] arr1 =new char[]{arr[x],arr[y]};
                                               
                                                //将新字符数组转换成字符窜打印
                                                System.out.print(new String(arr1)+",");
                                               
                                                for(int z=0;z<arr.length;z++)
                                                {       
                                                        //排除字符相同情况
                                                        if(z!=x&&z!=y)
                                                        {
                                                                char [] arr2 =new char[]{arr[x],arr[y],arr[z]};
                                                                System.out.print(new String(arr2)+",");       
                                                        }
                                                        else
                                                                continue;
                                                }
                                        }
                                       
                                       
                                }
                                       
                        }
                }
}



如果是四个字符就得四个for循环,怎么样改写呢?
作者: lslkkk    时间: 2015-4-21 18:01
我是来拿黑马币的
作者: itheima_llt    时间: 2015-4-21 20:08
这个贴不错!
作者: wangyu    时间: 2015-4-21 21:30
我也是来拿黑马币的
作者: xuelanghu120    时间: 2015-4-21 21:30
今天刚学了for和while循环,还好,明天对象和数组,开始小型攻坚战了,还有就是明天晚上要考试了
作者: li514620797    时间: 2015-4-21 21:32
赞同楼上,明天学习函数数组迎接考试
作者: 18561271203    时间: 2015-4-21 21:46
学了函数就好解决了
作者: SeventhMoon    时间: 2015-4-21 21:47
新手帮你顶一下
作者: Grady    时间: 2015-4-21 21:49
加油,学到常用API就可以了
作者: Advances    时间: 2015-4-21 21:50
顶一下。。。。。。

作者: 梦逆光377    时间: 2015-4-21 21:50
我很喜欢,太精彩了
作者: 黑马94那么拽    时间: 2015-4-21 22:23
黑马币。。。。。
作者: itheima_llt    时间: 2015-4-22 00:44
谢谢分享了!
作者: 只吃饭不洗碗    时间: 2015-4-22 09:09
来拿黑马币哈哈
作者: Wilsoncyf    时间: 2015-4-22 11:13
我是过来学习的
作者: Cat    时间: 2015-4-22 11:46
四个还真是有点麻烦。。。




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