您好我有文本文件,其中包含以下内容
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23876 root 20 0 9436 1764 760 R 4 0.0 0:00.08 top
50741 hcsadm 20 0 18.0g 2.3g 751m S 4 0.4 1310:10 hdbnameserver
51089 hcsadm 20 0 55.0g 48g 23g S 4 9.5 4713:14 hdbindexserver
15618 gdm 20 0 273m 65m 11m S 2 0.0 162:17.68 gdm-simple-gree
15938 cisadm 20 0 687m 281m 267m S 2 0.1 306:55.97 hdb.sapCIS_HDB0
17645 hbsadm 20 0 18.1g 7.7g 598m S 2 1.5 974:48.98 hdbnameserver
17795 hbsadm 20 0 109g 104g 39g S 2 20.8 14496:26 hdbindexserver
和我的java代码读取文件如下所示
Scanner sc = new Scanner(new File("top.txt"));
while(sc.hasNext()){
String line = sc.nextLine();
}
现在任何人都知道如何翻译以下格式的文件数据
array=[{PID:23876,USER:root,COMMAND:top},{PID:50741,USER:hcsadm,COMMAND:hdbnameserver},..........]
我如何在java中使用正则表达式,所以我以上面的格式转换我的文件信息,或者在java中有任何其他选项来制作上面的数组。
答案 0 :(得分:2)
分开每一行。
String[] fields = line.split("\\s+"); // split based on whitespace characters
String PID = fields[0];
String USER = fields[1];
String COMMAND= fields[11];
答案 1 :(得分:2)
尝试:
while(sc.hasNext()){
String line = sc.nextLine();
String[] values = line.split("\\s+");
String PID = "PID":+values[0];
String USER = "USER:"+values[1];
String COMMAND = "COMMAND:"+values[11];
//now do whatever you want with it, for example
String [] res = {PID, USER, COMMAND};
}