现在有两个字符串 strMessageA = "张三,男,北京,25";
               strMessageB = "姓名[]性别[]所属[]年龄[]"
               我想把'张三'放到姓名后面的括号里,把'男'放到性别的括号里,就是把strMessageA中的逗号前面的信息放到strMessageB相对应的括号里
                 请高手指点啊~~~
               
               上面的是写死的  我想要个活用的strMessageA ="张三,男,北京"  (不一定几个信息)
                                           strMessageB = "[]人员情报"
                如果strMessageB 中有一个'[]'就把strMessageA中的所有信息放到 strMessageB的[]中  例 strMessageC= "[张三,男,北京]人员情报"
                如果strMessageB 中有两个'[]'strMessageB = "[][]人员情报" strMessageC = "[张三][男,北京]人员情报"
                strMessageA 中的人员信息不是固定的,用逗号分割开的
                  strMessageB 中的[]也不是固定的
                请高手帮忙 

解决方案 »

  1.   

    public class TestCondition {
    public static void main(String[] args) throws Exception {
    String str = "张三,男,北京,25";
    String str2 = "姓名[]性别[]所属[]";
    System.out.println(mergeString(str,str2));
    }

    public static String replaceStr(String str2){
    if(str2.indexOf("[]")!=-1){
    str2 = str2.substring(0, str2.indexOf("[]"))+","+str2.substring(str2.indexOf("[]")+2);
        return replaceStr(str2);
    }
    return str2;
    }

    public static String mergeString(String str,String str2){
    StringBuffer buffer = new StringBuffer("");
    String[] splitArray = str.split(",");
        if(str2.indexOf("[]")!=-1){
         str2 = replaceStr(str2);
         String[] splitArray2 = str2.split(",");
         if(splitArray.length<=splitArray2.length){
         for(int i=0;i<splitArray.length;i++){
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         buffer.append("]");
         }
         }
         else
         {
         for(int i=0;i<splitArray2.length;i++){
         if(i==splitArray2.length-1){
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         for(int j=splitArray2.length;j<splitArray.length;j++){
         buffer.append(",");
         buffer.append(splitArray[j]);
         }
         buffer.append("]");
         break;
         }
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         buffer.append("]");
         }
         }
        }
    return buffer.toString();
    }
    }
    个人为你写了两个方法,能实现你的需求!
    草~浪费了我十几分钟!竟然是无分嘎!好DOWN!
      

  2.   

    public class TestCondition {
    public static void main(String[] args) throws Exception {
    String str = "张三,男,北京,25";
    String str2 = "姓名[]性别[]所属[]";
    System.out.println(mergeString(str,str2));
    }

    public static String replaceStr(String str2){
    if(str2.indexOf("[]")!=-1){
    str2 = str2.substring(0, str2.indexOf("[]"))+","+str2.substring(str2.indexOf("[]")+2);
        return replaceStr(str2);
    }
    return str2;
    }

    public static String mergeString(String str,String str2){
    StringBuffer buffer = new StringBuffer("");
    String[] splitArray = str.split(",");
        if(str2.indexOf("[]")!=-1){
         str2 = replaceStr(str2);
         String[] splitArray2 = str2.split(",");
         if(splitArray.length<=splitArray2.length){
         for(int i=0;i<splitArray.length;i++){
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         buffer.append("]");
         }
         }
         else
         {
         for(int i=0;i<splitArray2.length;i++){
         if(i==splitArray2.length-1){
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         for(int j=splitArray2.length;j<splitArray.length;j++){
         buffer.append(",");
         buffer.append(splitArray[j]);
         }
         buffer.append("]");
         break;
         }
         buffer.append(splitArray2[i]);
         buffer.append("[");
         buffer.append(splitArray[i]);
         buffer.append("]");
         }
         }
        }
    return buffer.toString();
    }
    }
    个人为你写了两个方法,能实现你的需求!
    草~浪费了我十几分钟!竟然是无分嘎!好DOWN!