比如我有一字符号串,其实是数组的下标,str="3,4,5,7,9,12,15,20";于是根据上面的字符串得到完整的数组下标字符串,如下所示:str="0:1:2:3,4,5,6:7,8:9,10:11:12,13:14:15,16:17:18:19:20";不知道大家有没有什么好的方法得到如上所要求的,要JAVA的程序,谢谢大家指教!为方便联系,可发email:[email protected]或者回帖子也可!回帖者如合适的送分.......

解决方案 »

  1.   

    用split(",")弄开
    然后搞几个循环就行了
    不过要麻烦点
    你花点时间搞吧
      

  2.   

    int max = 20;
    String str = "3,4,5,7,9,12,15,20";
    StringBuffer temp = new StringBuffer("");
    String[] aaStr = str.split(",");
    int j = 0;
    for(int i = 0;i < max+1;i++) {
    if(j < aaStr.length && i != Integer.parseInt(aaStr[j])) {
    temp.append(i + ":");
    }else {
    temp.append(i+",");
    j++;
    }
    }
    temp.deleteCharAt(temp.lastIndexOf(","));
    System.out.println(temp.toString());
      

  3.   

    根据str1="3,4,5,7,9,12,15,20"来生成str2先把str1的对象加入到一个Hashtable(或者List,Vector)中。
    然后循环做成str2。loop (i)
    {
        if (ht.containsKey(i)) str2 += i+ ",";
        else str2 += i + ":";
    }
    再去掉最后一个符号,就是楼主所要的字符串了。
      

  4.   

    在你另一个帖里写过了
    String str = "3,4,5,7,9,12,15,20";  
    String[] strArry = str.split(",");
    Arrays.sort((Object[])strArry, new Comparator() {
        public int compare(Object o1, Object o2) {
            int n1 = Integer.parseInt((String)o1);
            int n2 = Integer.parseInt((String)o2);
            return (n1 - n2);
        }
    });
    StringBuilder sb = new StringBulder();
    int j=0, n=0;
    for (int i=0; i<strArry.length; i++) {
        n = Integer.parseInt(strArry[i]);
        for (;j<n; j++) {
            sb.append(j).append(":");
        }
        sb.append(j++).append(",");
    }
    sb.deleteCharAt(sb.length()-1);
    str = sb.toString();
    System.out.println(str);
    //str="0:1:2:3,4,5,6:7,8:9,10:11:12,13:14:15,16:17:18:19:20";  
      

  5.   

    给你的函数,用它转换一下就可以了:
    public String getArrayString(String str){
    String s[]=str.split(",");
    int maxindex=Integer.parseInt(s[s.length-1]);
    String res="";
    int j=0;
    for(int i=0;i<=maxindex;i++){
    if(i==Integer.parseInt(s[j])){
    res+=i+",";
    j++;
    }else{
    res+=i+":";
    }
    }
    res=res.substring(0,res.length()-1);
    return res;
    }
      

  6.   

    public String getArrayString(String str){ 
    String s[]=str.split(","); 
    int maxindex=Integer.parseInt(s[s.length-1]); 
    String res=""; 
    int j=0; 
    for(int i=0;i <=maxindex;i++){ 
    if(i==Integer.parseInt(s[j])){ 
    res+=i+","; 
    j++; 
    }else{ 
    res+=i+":"; 


    res=res.substring(0,res.length()-1); 
    return res; 
    }
      

  7.   


     发表于:2007-10-11 17:13:574楼 得分:0 
    import java.util.*; public class PrintString { public static void main(String args[]){ String str = "3,4,5,7,9,12,15,20";    
    String[] strArry = str.split(",");  Arrays.sort((Object[])strArry, new Comparator <Object >() {  
        public int compare(Object o1, Object o2) {  
            int n1 = Integer.parseInt((String)o1);  
            int n2 = Integer.parseInt((String)o2);  
            return (n1 - n2);  
        }  
    });  StringBuilder sb = new StringBuilder();  
    int j=0, n=0;  
    for (int i=0; i  <strArry.length; i++) {  
        n = Integer.parseInt(strArry[i]);  
    for (;j  <n; j++) {  
    sb.append(j).append(":");  
    }  
    sb.append(j++).append(",");  
    }  
    sb.deleteCharAt(sb.length()-1);  
    str = sb.toString();  
    System.out.println(str);  } } 
     
     
      

  8.   

    在 帖子
    http://topic.csdn.net/u/20071011/15/87bc8a5f-7042-413a-8c94-d86da3ec21cc.html?seed=975993959中的回答我已经编译运行过没有问题