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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pegasus 中级黑马   /  2015-11-25 09:12  /  493 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /**
  2. * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,例如: 原始字符串是"abc",打印得到下列所有组合情况: "a" "b" "c" "ab"
  3. * "bc" "ca" "ba" "cb" "ac" "abc" "acb" "bac" "bca" "cab" "cba"
  4. */
  5. public class CharacterAssemble {
  6.         public static void main(String[] args) throws IOException {
  7.                 System.out.println("请输入一个字符串:");
  8.                 BufferedReader bufferedReader = new BufferedReader(
  9.                                 new InputStreamReader(System.in));
  10.                 String str = bufferedReader.readLine().trim();
  11.                 String[] strs = str.split("");

  12.                 List<String> temp = new ArrayList<String>();
  13.                 List<String> list = new ArrayList<String>();
  14.                 List<String> listAll = new ArrayList<String>();

  15.                 int len = strs.length;
  16.                 for (int i = 0; i < len; i++) {
  17.                         for (int j = 0; j < len; j++) {
  18.                                 if (!temp.isEmpty()) {
  19.                                         for (int k = 0; k < temp.size(); k++) {
  20.                                                 // 判断是否有重复
  21.                                                 if (!temp.get(k).contains(strs[j]))
  22.                                                         list.add(temp.get(k) + strs[j]);
  23.                                         }
  24.                                 } else {
  25.                                         list.add(strs[j]);
  26.                                 }
  27.                         }

  28.                         listAll.addAll(list);
  29.                         // 将list的元素复制给temp
  30.                         temp.addAll(list);
  31.                         // list清空
  32.                         list.clear();
  33.                 }
  34.                 System.out.println(listAll);
  35.         }
  36. }
复制代码

3 个回复

倒序浏览
获取字符串数组的方法太麻烦,另外,你确定你的程序是对的?
看下这个:
http://bbs.itheima.com/thread-263226-1-1.html
回复 使用道具 举报
看着 有点蒙圈圈
回复 使用道具 举报
!!!!!!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马