日期:2014-05-20 浏览次数:20649 次
String[] cha = a.split(a,","); int n = cha.length; int index=n; while(index != 0){ for(int i =0; i <cha[index]; i++) {//TODO} }
------解决方案--------------------
doFor(List list){ for(int i=0;i<list.get(0);i++){ //dosomething list.remove(0); if(list.size()>0){ doFor(list); } } }
------解决方案--------------------
package com.capinfo.test; public class StringTest { public static void main(String[] args) { String s="100,200,1000,9,2000"; digui(s); } /** * @param s * @author sundful * @vesion 1.0 */ public static void digui(String s) { String s1=""; String s2=""; if("".equals(s) || s.trim().length()<0) return; int num=s.indexOf(","); if(num !=-1) { s1=s.substring(0,num); s2=s.substring(num+1); for(int i=0;i<Integer.parseInt(s1);i++) { digui(s2); System.out.println(i); } } } }
------解决方案--------------------
搂主,我觉得我的思路已经非常好了,
你能不能实践一下,总不能等着别人都做好吧。
------解决方案--------------------
以下应该可以满足楼主您的要求,用递归。
public class MTest {
private static int count = 1;
public static void main (String [] args) {
String a = "1,7,3,4";
String[] lens = a.split("[,]");
doLoop(lens, 0);
}
public static void doLoop(String [] lens, int index) {
if (index != lens.length) {
int range = Integer.parseInt(lens[index]);
for (int i = 0; i < range; i++) {
doLoop(lens, index + 1);
}
} else {
System.out.println("doLoop" + String.valueOf(count));
count++;
}
}
}
------解决方案--------------------
public static void main(String[] args) { // TODO Auto-generated method stub int[] a = {1,1,2,3}; execute(a,0); } public static void execute(int[] a,int index){ if (index >= a.length) return; for (int i = 0; i < a[index]; i++){ //some code here execute(a,index + 1); } }
------解决方案--------------------
String a="1,2,2,3"; String[] arr = a.split(","); int len = arr.length; int[] loop = new int[arr.length]; int[] curr = new int[arr.length]; for(int i=0;i<loop.length;i++) loop[i] = new Integer(arr[i]).intValue(); for(int i=0;curr[0]<loop[0];i++){ for(int j=0;j<loop.length;j++) System.out.print(curr[j]+"\t"); System.out.println(); curr[len-1]++; for(int j=len-1;j>0;j--){ if(curr[j]==loop[j]){ for(int k=j;k<len;k++) curr[k]=0; curr[j-1]++; } } if(i>=loop[len-1]){ i=0; } }