数组组合问题,罗辑高手请进

jackyluck 2008-03-13 04:11:49
假设一组数字数组:
ArrayList numbers= new ArrayList();
假设里面有25个数字:
numbers.add(1),numbers.add(2),numbers.add(3).......
如果我以7个数字为一组地组合(数字在numbers取出),组合出来的数组不重如何做?请高手帮帮我,谢谢!
例如:
1,2,3,4,5,6,7为一组,2,4,5,6,7,8,9又一组
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zapdos 2008-03-13
  • 打赏
  • 举报
回复
改了一改,应该符合要求了

public class test{
private String[] string;
private int strLength = 7,current=0;
private boolean[] list;
private StringBuffer sb = new StringBuffer();
public test(String string){
this.string = string.split("");
list = new boolean[this.string.length];
result(1);
System.out.println(sb);
}
private void result(int start){
if(current==strLength)
for(int i=0;i<list.length;i++)
sb.append((list[i]?string[i]:"")+(i==list.length-1?"\n":""));
else
for(int i=start;i<string.length;i++){
list[i] = true;
current++;
result(i+1);
current--;
list[i] = false;
}
}
public static void main(String args[]){
new test("123456789");
}
}

C:\java>java test
1234567
1234568
1234569
1234578
1234579
1234589
1234678
1234679
1234689
1234789
1235678
1235679
1235689
1235789
1236789
1245678
1245679
1245689
1245789
1246789
1256789
1345678
1345679
1345689
1345789
1346789
1356789
1456789
2345678
2345679
2345689
2345789
2346789
2356789
2456789
3456789
zapdos 2008-03-13
  • 打赏
  • 举报
回复
类似这样?
C:\java>java test
1
2
3
4
5
12
13
14
15
23
24
25
34
35
45
123
124
125
134
135
145
234
235
245
345
1234
1235
1245
1345
2345
12345

/*import java.util.regex.*;
public class test{
public static void main(String args[]){
String str = "[Sun Aug 19 06:59:49 2007] [error] [client 192.168.34.36] File does not exist: /var/www/html/favicon.ico ";
Pattern p = Pattern.compile("\\[(.*?)\\]\\s*\\[(.*?)\\]\\s*\\[(.*?)\\]\\s*(.*)$");
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
System.out.println(m.group(3));
System.out.println(m.group(4));
}
}
}
*/
public class test{
private String[] string;
private int strLength = 0,current=0;
private boolean[] list;
public test(String string){
this.string = new String[string.length()];
for(int i=0;i<string.length();i++)
this.string[i] = i==string.length()?string.substring(i):string.substring(i,i+1);
list = new boolean[this.string.length];
run();
}
private void run(){
for(int i=1;i<=string.length;i++){
strLength++;
result(0,list);
}
}
private void result(int start,boolean[] listarr){
if(current==strLength){
for(int i=0;i<listarr.length;i++)
System.out.print((listarr[i]?string[i]:"")+(i==listarr.length-1?"\n":""));
}else{
for(int i=start;i<string.length;i++){
boolean[] temp = listarr.clone();
temp[i] = true;
current++;
result(i+1,temp);
current--;
}
}
}
public static void main(String args[]){
new test("12345");
}
}

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧