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

用户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
。。。。

分这么几步操作:

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

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

    把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]里了吧

追答

是的

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-26
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());
        }

追问

谢谢,你的编码更严谨。

相似回答