String treeString[]={   "公司1@2;事业部1@3;科室1",
"公司1@2;事业部1@3;科室2",
"公司1@2;事业部1@3;科室3",
"公司1@2;事业部2@1;科室4",
"公司2@2;事业部3@1;科室5",
"公司2@2;事业部4@1;科室6"
                     };
公司名称“@”后面是公司含有事业部的个数
事业部名称“@”后面是事业部含有的科室的个数要求:通过一条一条地循环读数组
得到这样的字符串:有事业部群的公司1-有科室群的事业部1-科室1-科室2-科室3-有科室的事业部2-科室4-有事业部群的公司2-有科室的事业部3-科室5-有科室的事业部4-科室6万分感谢,就是通过循环读数组简单分析:@后面的数字>1就是有事业部群或者科室群
          @后面的数字=1就是有事业部或者科室

解决方案 »

  1.   


    public class ArraysTest {    private static String str1 = "大连实德集团@2;人力资源部@4;实德1科室";
        private static String str2 = "大连实德集团@2;人力资源部@4;实德2科室";
        private static String str3 = "大连实德集团@2;管理本部@4;实德3科室";
        private static String str4 = "大连实德集团@2;管理本部@4;实德4科室";
      
        private static String str5 = "上海申花集团@2;人力资源部@2;申花1科室";
        private static String str6 = "上海申花集团@2;管理本部@2;申花2科室";
        
        private static String arrays[] = { str1, str2, str3, str4, str5, str6 };    public static void main(String[] args) {        // 想要得到的结果:
            // String shide = "大连实德集团-人力资源部-实德1科室-实德2科室-管理本部-实德3科室-实德4科室";
            // String shenhua = "上海申花集团-人力资源部-申花1科室-管理本部-申花2科室";
        }
    }
    LZ,是这个意思吗?
      

  2.   

    用正则表达式也可以 
    自己解决的方法是一层一层把所需要的结构写出来:
    不过还是谢谢大家 上面的方法也可以得到结果
    function checkTree()
    {
     var treeString=new Array("有色公司@3;第一事业部@2;科室1","有色公司@3;第一事业部@2;科室2","有色公司@3;事业部2@2;科室3","有色公司@3;事业部2@2;科室4","有色公司@3;事业部3@2;科室5","有色公司@3;事业部3@2;科室6","矿产公司@1;财务部@1;科室8","五矿公司@2;信息部@1;科室9","五矿公司@2;财务部@3;科室10","五矿公司@2;信息部@3;科室11","五矿公司@2;财务部@3;科室12");   
     //treeString=new Array();
     //treeString=info.split("#"); //读取SAP session信息
     var strPromptOutput='<ul id="tree-checkmenu" class="checktree">';
     strPromptOutput+='<li id="show-zzjg" class="last"><input id="check-zzjg" type="checkbox" checked="checked"/>组织结构<ul id="tree-zzjg">';
     
     var gs="",syb="",ks="";
     var orderInAll=0,countGS=0,countSYB=0;
     var lastItem=treeString[treeString.length-1].substring(0, treeString[treeString.length-1].indexOf("@"));
     var i=0; 
     for(;i<treeString.length;)
    {
    var item=new Array();
    var GS=new Array();
    var SYB=new Array();
    item=treeString[i].split(";");
    GS=item[0].split("@");
    SYB=item[1].split("@"); 
    gs=GS[0];syb=SYB[0];ks=item[2];
    countGS=parseInt(GS[1]);
     
    if(gs==lastItem)   //last--公司
         {
          strPromptOutput+='<li class="last" id="show-gs'+orderInAll+'">';
         }
         else                                         //not-last-公司
         {
          strPromptOutput+='<li id="show-gs'+orderInAll+'">';
         }     
       
         strPromptOutput+='<input id="check-gs'+orderInAll+'" type="checkbox" checked="checked"/>'+gs;
         //strPromptOutput+='<span id="count-gs'+orderInAll+'" class="count"></span>'; //屏蔽后面信息
         strPromptOutput+='<ul id="tree-gs'+orderInAll+'">';
         
         for(var k=0;k<countGS;k++)
         {
          var b=new Array();
         b=treeString[orderInAll].split(";");
         countSYB=b[1].split("@")[1];
         if(k==countGS-1)                  //last 事业部
         {     
         strPromptOutput+='<li id="show-syb'+orderInAll+'" class="last">';
         strPromptOutput+='<input id="check-syb'+orderInAll+'" type="checkbox" checked="checked"/>'+b[1].split("@")[0];
         }
         else                             //non-last 事业部
         {   
         strPromptOutput+='<li id="show-syb'+orderInAll+'">';
         strPromptOutput+='<input id="check-syb'+orderInAll+'" type="checkbox" checked="checked"/>'+b[1].split("@")[0];
         }     
        
         //strPromptOutput+='<span id="count-syb'+orderInAll+'" class="count"></span>';  //屏蔽后面信息
         strPromptOutput+='<ul id="tree-syb'+orderInAll+'">';
         for(var j=0;j<countSYB;j++)//
         {
         var a=new Array();
         a=treeString[orderInAll].split(";");
         if(j==countSYB-1)             //事业部有一个科室
         {
           strPromptOutput+='<li class="last" ><input type="checkbox" value="'+a[2]+'"/ checked="checked">'+a[2]+'</li>';
         }
         else                         //事业部有多个科室
         {
         strPromptOutput+='<li><input type="checkbox" value="'+a[2]+'"/ checked="checked">'+a[2]+'</li>';
         }
         orderInAll++;
         }
        
         strPromptOutput+='</ul>'+'</li>';  
        
         }
        
             
         strPromptOutput+='</ul>';
         strPromptOutput+='</li>';
        i=orderInAll;
    }
    strPromptOutput+='</ul>';
    return strPromptOutput; 
    }