黑马程序员技术交流社区
标题:
求大神帮忙看下这个问题
[打印本页]
作者:
xcdhr123
时间:
2014-7-10 11:09
标题:
求大神帮忙看下这个问题
/**
*
*编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符,
* 例如: 原始字符串是"abc",打印得到下列所有组合情况: "a" "b" "c"
* "ab" "bc" "ca" "ba" "cb" "ac"
* "abc" "acb" "bac" "bca" "cab" "cba"
*
* @author Administrator
*
*/
public class Text6 {
public static void main(String[] args) {
char[] ch = { 'a', 'b', 'c' };
ArrayList list = new ArrayList();
ArrayList list2 = new ArrayList();
ArrayList list3 = new ArrayList();
for (int i = 0; i < ch.length; i++) {
list.add(ch[i]);
for (int j = 0; j < ch.length; j++) {
if (i != j) {
list2.add(ch[i] + "" + ch[j] + " ");
for (int j2 = 0; j2 < ch.length; j2++) {
if (j2 != i && j2 != j) {
list3.add(ch[i] + "" + ch[j] + "" + ch[j2]);
}
}
}
}
}
for (int a = 0; a < list.size(); a++) {
System.out.print(list.get(a) + " ");
}
//下面会出错。
for (int a = 0; a < list2.size(); a++) {
System.out.print(list.get(a) + " ");
}
for (int a = 0; a < list3.size(); a++) {
System.out.print(list.get(a) + " ");
}
}
}
这个方法可以么?我想把for循环遍历封装,但是总报错,求大神帮忙。
作者:
lancerjs
时间:
2014-7-10 12:15
for (int a = 0; a < list2.size(); a++) {
System.out.print(list2.get(a) + " ");
}
for (int a = 0; a < list3.size(); a++) {
System.out.print(list3.get(a) + " ");
}
复制代码
作者:
xcdhr123
时间:
2014-7-10 13:24
lancerjs 发表于 2014-7-10 12:15
不能直接打印,得到的结果不一样,
作者:
xcdhr123
时间:
2014-7-10 13:26
public class Text6 {
public static void main(String[] args) {
// 定义一个char类型的数组
char[] ch = { 'a', 'b', 'c' };
//定义ArrayList集合
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
ArrayList<String> list3 = new ArrayList<String>();
//分别取出元素并存到ArrayList中
for (int i = 0; i < ch.length; i++) {
list.add(ch[i] + "");
for (int j = 0; j < ch.length; j++) {
if (i != j) {
list2.add(ch[i] + "" + ch[j]);
for (int j2 = 0; j2 < ch.length; j2++) {
if (j2 != i && j2 != j) {
list3.add(ch[i] + "" + ch[j] + "" + ch[j2]);
}
}
}
}
}
//调用traverse遍历
traverse(list);
traverse(list2);
traverse(list3);
}
//封装遍历方法
public static void traverse(List<String> list) {
for (String string : list) {
System.out.print(string + " ");
}
System.out.println("");
}
}
弄明白了,转型的问题
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2