日期:2014-05-20 浏览次数:20824 次
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;
}
}