通过windows 的 tasklist 把所有task得到,tasklist 命令中介绍默认得到的结果是由制表符分割的:*************************************************************
javaw.exe                   3684 Console                 0    164,608 K Running         IBM-L3AMH63\wuxin                                       0:04:10 Java - test.java - Eclipse SDK                                          
firefox.exe                 5884 Console                 0    155,860 K Running         IBM-L3AMH63\wuxin                                       0:14:04 Microsoft Windows XP - Tasklist - Firefox - 火狐中国版                  
wmiprvse.exe                 844 Console                 0      7,196 K Running         NT AUTHORITY\NETWORK SERVICE                            0:00:17 N/A                                                                     
cmd.exe                     5660 Console                 0      2,932 K Running         IBM-L3AMH63\wuxin                                       0:00:00 cmd.exe - tasklist /v /nh /fo TABLE                                     
tasklist.exe                3844 Console                 0      6,352 K Running         IBM-L3AMH63\wuxin                                       0:00:00 OleMainThreadWndName         *************************************************************每行的内容进行分割,但得不到想要的结果。
eachLine.split("\t").size()  结果都是1这里怎么能得到每行中每列的值呢?谢谢!

解决方案 »

  1.   

    你 那好像不是tab分割的,我换成tab后,
    public static void main(String[] args) {
    String s ="javaw.exe 3684 0:04:10 Java - test.java - Eclipse SDK " +
    "firefox.exe 5884 Console 0 155,860 K 0:14:04 Microsoft Windows XP - Tasklist "; String[] s1 = s.split("\t");
    for(int i=0;i <s1.length;i++)
    {
    System.out.println(s1[i]);
    }

    }
    结果:
    javaw.exe
    3684
    0:04:10
    Java
    -
    test.java
    -
    Eclipse
    SDK
    firefox.exe
    5884
    Console
    0
    155,860
    K
    0:14:04
    Microsoft
    Windows
    XP
    -
    Tasklist
      

  2.   


    对,好像不是tab分。
    那该怎么得到一行中各个列的值呢? 
    空格也不行,最后一列是程序名字,其中肯定会有空格。
    纠结....
      

  3.   

    还是从tasklist这个命令下手了~~ 
    tasklist /fo csv 
    可以得到逗号分隔符的"System Idle Process","0","Console","0","16 K","Running","NT AUTHORITY\SYSTEM","14:44:40","N/A"
    "System","4","Console","0","288 K","Running","NT AUTHORITY\SYSTEM","0:04:35","N/A"
    "smss.exe","724","Console","0","432 K","Running","NT AUTHORITY\SYSTEM","0:00:00","N/A"
    "csrss.exe","796","Console","0","1,792 K","Running","NT AUTHORITY\SYSTEM","0:02:44","N/A"