谁能帮我把下面文件的行解析成MAP,谢谢了

chenfxcfx 2016-12-12 09:56:01
[Root]system-notification-00257(traffic): start_time="2010-12-01 00:00:00" duration=2 policy_id=1 service=icmp proto=1 src zone=Trust dst zone=Untrust action=Tunnel (XX_To_YY) sent=102 rcvd=102 src=10.0.0.X dst=10.0.0.Y icmp type=8 src-xlated ip=10.0.0.X dst-xlated ip=10.0.0.Y session_id=57515 reason=Close - RESP

解析成:
start_time="2010-12-01 00:00:00"
duration=2
policy_id=1
service=icmp
src zone=Trust (注意src zone之间有空格)
dst zone=Untrust (注意dst zone之间有空格)
action=Tunnel (XX_To_YY)
sent=102
sent=102
src=10.0.0.X
dst=10.0.0.Y
icmp type=8
src-xlated ip=10.0.0.X
dst-xlated ip=10.0.0.Y
session_id=57515
reason=Close - RESP
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenfxcfx 2016-12-12
  • 打赏
  • 举报
回复
有呀,是空格分割符
lost_guy_in_scut 2016-12-12
  • 打赏
  • 举报
回复
没有分隔符,除了一个个截取没有其他办法
chenfxcfx 2016-12-12
  • 打赏
  • 举报
回复
做出来了. public static Map<String, Object> split(String str, String[] tokens) { Map<String, Object> map = new HashMap<String, Object>(); StringBuffer sb = new StringBuffer(); //StringTokenizer stk1 = new StringTokenizer(str,tokens[0]); String[] array1 = str.split(tokens[0]); for (int i=0;i<array1.length;i++){ System.out.println(array1[i]); } List<String> keyList = new ArrayList<String>(); List<String> valList = new ArrayList<String>(); keyList.add(array1[0]); valList.add(array1[1].substring(0,21)); keyList.add(array1[1].substring(21,array1[1].length())); for(int i = 2;i<array1.length-1;i++){ String[] array2 = array1[i].split(tokens[1]); sb.setLength(0); for(int j=1;j<array2.length;j++){ sb.append(array2[j]).append(tokens[1]); } keyList.add(sb.toString().trim()); valList.add(array2[0]); } valList.add(array1[array1.length-1]); if(valList.size()==keyList.size()){ for(int i=0;i<valList.size();i++){ map.put(keyList.get(i), valList.get(i)); } } return map; } 调用时 Map<String, Object> res = split(str,new String[]{"="," "}); System.out.println(res);
chenfxcfx 2016-12-12
  • 打赏
  • 举报
回复
值是没有空格的,除了时间外 只有 key 空格,看看好不好截
  • 打赏
  • 举报
回复
没规则的话就没法截,空格可能是分隔数据的,也可能是单词之前的。没办法拿空格截

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧