读书人

高分,求一段算法:字符串转换为循环解决

发布时间: 2012-02-21 16:26:23 作者: rapoo

高分,求一段算法:字符串转换为循环
我有一个字符串
String a="100,200,1000";
现在想实现一下这段代码
for(int i=0;i<100;i++){
for(int i=0;i<200;i++){
for(int i=0;i<1000;i++){

}
}
}
可是,我的a中的字符串的长度和位数都不一定,或许是String a="100,200,1000,9";
求一段简洁程序,实现上边逻辑

[解决办法]

Java code
String[] cha = a.split(a,",");int n = cha.length;int index=n;while(index != 0){ for(int i =0; i <cha[index]; i++){//TODO}}
[解决办法]
Java code
doFor(List list){for(int i=0;i<list.get(0);i++){//dosomething list.remove(0); if(list.size()>0){    doFor(list);  }}}
[解决办法]
Java code
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++;
}
}
}
[解决办法]
Java code
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);                    }    }
[解决办法]
Java code
        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;            }                    } 

读书人网 >J2SE开发

热点推荐