你这是三个对象,你要转为什么map格式呢?
按照什么方式存入map中呢?

解决方案 »

  1. 另外一个接口只接Map.所以要以key value格式存入
      

  2. 用‘,’号切,再用‘=’切,奇数赋值给value偶数赋值给key,你看行吗。
    后面的 | 去掉用方法remove先判断位置再去掉
      

  3. 先根据 | 分隔,然后按照 , 分隔, 然后再按照 = 分隔
    定义一个对象,将属性什么的设置好,按照 order_id 为key,对象为value 放入map中
    将map返回
      

  4. 先根据 | 分隔,然后按照 , 分隔, 然后再按照 = 分隔
    定义一个对象,将属性什么的设置好,按照 order_id 为key,对象为value 放入map中
    将map返回梦圈了...求代码.见笑了.头不转圈了
      

  5. 代码自己写,有问题可以问定义一个Instance 类,属性就是trans_state,dc_,... order_date 这些
    你上面不是已经按照 | 分隔一次了嘛,分隔后有数组,遍历这个数组
    对数组中的每一项继续按照 , 分隔,分隔后将里面的数组再次按照 = 分隔
    然后根据属性名和属性值的关系,将数据组装到对象里面去 将对象放入map中就可以了
      

  6. 代码【要想看运行过程,可以把注释打开或者Debug;得自己加一些异常处理以及日志】:
    import java.util.HashMap;public class StringToMapArray {
        private HashMap<String, String>[] _mapArray;    public static void main(String[] args) {
            final String m_stringData = "trans_state = 01,\n" +
                    " dc_ = 01,\n" +
                    " amount = 10,\n" +
                    " trans_date = 20150312,\n" +
                    " acc_check_date = 20150312,\n" +
                    " balance = 755,\n" +
                    " amt_type = 01,\n" +
                    " trans_time = 170158,\n" +
                    " order_id = OD201521200000002,\n" +
                    " trans_type = 03,\n" +
                    " order_date = 20150312 | \n" +
                    "\n" +
                    "trans_state = 01,\n" +
                    " dc_ = 01,\n" +
                    " amount = 1,\n" +
                    " trans_date = 20150312,\n" +
                    " acc_check_date = 20150312,\n" +
                    " balance = 765,\n" +
                    " amt_type = 01,\n" +
                    " trans_time = 160631,\n" +
                    " order_id = OD201521200000001,\n" +
                    " trans_type = 03,\n" +
                    " order_date = 20150312 | \n" +
                    "\n" +
                    " trans_state = 01,\n" +
                    " dc_ = 01,\n" +
                    " amount = 4,\n" +
                    " trans_date = 20150312,\n" +
                    " acc_check_date = 20150312,\n" +
                    " balance = 766,\n" +
                    " amt_type = 01,\n" +
                    " trans_time = 143756,\n" +
                    " order_id = OD201521200000023,\n" +
                    " trans_type = 03,\n" +
                    " order_date = 20150312";        StringToMapArray stringToMapArray = new StringToMapArray();
            stringToMapArray.setMapArray(m_stringData);
            HashMap<String, String>[] m_mapArray = stringToMapArray.getMapArray();        for (HashMap<String, String> m_map : m_mapArray) {
                System.out.println(m_map);
            }
        }    public HashMap<String, String>[] getMapArray() {
            return _mapArray;
        }    public void setMapArray(final String p_stringData) {
            String s_stringData = p_stringData;
            s_stringData = s_stringData.replaceAll(" ", "");//去除空格
            s_stringData = s_stringData.replaceAll("\n", "");//去除改行
            // System.out.println(s_stringData);        String stringDataSplitByVerticalBarArray[] = s_stringData.split("\\|");
            HashMap<String, String>[] s_mapArray = new HashMap[stringDataSplitByVerticalBarArray.length];        int s_mapIndex = 0;
            for (String stringDataSplitByVerticalBar : stringDataSplitByVerticalBarArray) {
                s_mapArray[s_mapIndex] = new HashMap<String, String>();
                // System.out.println(stringDataSplitByVerticalBar);
                String stringDataSplitByCommaArray[] = stringDataSplitByVerticalBar.split(",");
                for (String stringDataSplitByComma : stringDataSplitByCommaArray) {
                    // System.out.println(stringDataSplitByComma);
                    String stringDataSplitByEqualsSignArray[] = stringDataSplitByComma.split("=");
                    // for (String stringDataSplitByEqualsSign : stringDataSplitByEqualsSignArray) {
                    //     System.out.println(stringDataSplitByEqualsSign);
                    // }
                    s_mapArray[s_mapIndex].put(stringDataSplitByEqualsSignArray[0], stringDataSplitByEqualsSignArray[1]);
                }
                s_mapIndex++;
            }
            this._mapArray = s_mapArray;
        }
    }
    运行结果:
    {dc_=01, order_date=20150312, trans_state=01, amount=10, trans_date=20150312, balance=755, acc_check_date=20150312, trans_time=170158, amt_type=01, order_id=OD201521200000002, trans_type=03}
    {dc_=01, order_date=20150312, trans_state=01, amount=1, trans_date=20150312, balance=765, acc_check_date=20150312, trans_time=160631, amt_type=01, order_id=OD201521200000001, trans_type=03}
    {dc_=01, order_date=20150312, trans_state=01, amount=4, trans_date=20150312, balance=766, acc_check_date=20150312, trans_time=143756, amt_type=01, order_id=OD201521200000023, trans_type=03}
      

类似问题 »