使用正则表达式读取和转换Java文件

标签 java

您好,我有包含以下内容的文本文件

 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 中有任何其他选项来制作上述数组。

最佳答案

只需拆分每一行。

String[] fields = line.split("\\s+"); // split based on whitespace characters
String PID = fields[0];
String USER = fields[1];
String COMMAND= fields[11];

关于使用正则表达式读取和转换Java文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866259/

相关文章:

java - 无法从 Activity 到 fragment 获取 bundle 值

java - 在构建时自动更新 Liquibase 的变更日志

java - 如何设置 Maven 选项以运行发布或快照

java - 如何将相同的对象添加到多态数组但能够对该对象的重复版本进行更改?

java - Hibernate 应用程序中的连接泄漏

java - 关键事件不起作用

java - 鼠标拖动手势

java - 使用另一个类的方法时出错

java - 有没有办法使用 NetBeans IDE 将代码块引入到新生成的类的方法中?

java - 如何使用 2 个表获取订阅者数量