解决方案 »

  1.   

    String[] temp="sId*gId_gId,sId*gId".split(",");
    List<String> sIdList = new ArrayList<String>();
    List<String> gIdList = new ArrayList<String>();
    for(var i=0;i<temp.length;i++){
        String[] temp1=temp[i].split("*");
       sIdList.add(temp1[0]);
       gIdList.add(temp1[1]);
    }
    //两个集合成对出现,不用客气。你到问题描述的不是十分清楚哦
      

  2.   

    数据 String str = "   sId*gId_gId,
                                      sId*gId_gId_gId_gId,
                                      sId*gId  
                                          ..........
                                          "
               例如   10000*1_2,
                           10001*3_4_5_6,
                            10002*7,
                               ......................截取后的是 sid    gid
      

  3.   

    利用String  split() 方法就能解决
      

  4.   

    三次截取,第一次split(","),第二次split("*")分开对应的商家和产品,第三次split("_")则样就出来了
      

  5.   

    用split就可以轻松解决了啊,参考下2楼的就可以了
      

  6.   

    使用split,或者是正则表达式吧
      

  7.   


    String demo = "sId1*gId1_gId2,sId2*gId1";
    String[] splitedSid = demo.split(",");
    Map<String, String[]> map = new HashMap<String, String[]>();
    for (int i = 0; i < splitedSid.length; i++) {
    String gid = splitedSid[i].split("\\*")[0];
    String[] splitedGid = splitedSid[i].split("\\*")[1].split("_");
    map.put(gid, splitedGid);
    }
      

  8.   

    截取 String  s="10000*1_2,10001*3_4_5_6,10002*7,";
     Matcher m = Pattern.compile("(.*?),").matcher(s);
     while(m.find()){
       System.out.println(m.group(1).split("\\*")[0]+"--->"+m.group(1).split("\\*")[1]);
     }
      

  9.   

    java 操作字符串是很简单的,了解待处理字符串的特点后,基本上是用indexOf、split、subString等方法即可搞定楼主的问题。
      

  10.   

    使用split,或者是正则表达式吧 
      

  11.   

    楼上都说得很对,用split()方法,先截逗号,再截*