java读取txt文件,文件中的内容如下所示。map结构,读出来的一行String怎么转换为Map。请问我该怎么做?

用户ID:987654321;用户名:李四;用户IP:192.168.1.1;活动时间:2015-01-1312时58分34秒;程序名称:C:/Windows/syste... 用户ID:987654321 ; 用户名:李四 ; 用户IP:192.168.1.1 ; 活动时间:2015-01-13 12时58分34秒 ; 程序名称:C:/Windows/system32/DllHost.exe ; 开始时间:12时58分30秒 ; 结束时间:12时58分34秒 ; 是否锁定:0
用户ID:987654321 ; 用户名:李四 ; 用户IP:192.168.1.1 ; 活动时间:2015-01-13 12时58分34秒 ; 程序名称:C:/Windows/system32/DllHost.exe ; 开始时间:12时58分30秒 ; 结束时间:12时58分34秒 ; 是否锁定:0
。。。。
展开
 我来答
jpsbbt
推荐于2017-12-15 · TA获得超过1549个赞
知道小有建树答主
回答量:1060
采纳率:100%
帮助的人:539万
展开全部

分这么几步操作:

  1. 把读出的一行数据,根据分号(;),解析成数组;

  2. 然后循环这个数组,根据冒号(:),解析成数组;

  3. 把2的数据赋给一个map;

代码示意:

String str = "你读取的一行文本";
Map map = new HashMap(); //新建map对象
String[] strArray = str.split(";");
for(String s:strArray){
String[] sArray = s.split(":");
map.put(sArray[0], sArray[1]);
}
追问
这样的话 好像用户ID,用户名等等都是在sArray[0]里、而数据都在sArray[1]里了吧
追答
是的
找红太郎的灰灰
2015-01-26 · TA获得超过285个赞
知道小有建树答主
回答量:221
采纳率:0%
帮助的人:189万
展开全部
String str = "用户ID:987654321 ; 用户名:李四 ; 用户IP:192.168.1.1 ; 活动时间:2015-01-13 12时58分34秒 ; 程序名称:C:/Windows/system32/DllHost.exe ; 开始时间:12时58分30秒 ; 结束时间:12时58分34秒 ; 是否锁定:0";
        Map<String, String> map = new HashMap<String, String>();
        for(String s :str.trim().split(";")){
            String[] ss = s.trim().split(":");
            map.put(ss[0].trim(), ss[1].trim());
        }
        
        for(Entry<String,String> e:map.entrySet()){
            System.out.println(e.getKey());
            System.out.println(e.getValue());
        }
追问
谢谢,你的编码更严谨。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式