-1

以下に示す私の文字列

     PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
    1 root      20   0 24416 2408 1360 S   0.0  0.2   0:00.88 init
   10 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kdevtmpfs
  171 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 mpt_poll_0
  818 messageb  20   0 23940 1260  920 S   0.0  0.1   0:00.97 dbus-daemon
  995 whoopsie  20   0  185m 4224 3000 S   0.0  0.4   0:00.06 whoopsie
 1000 daemon    20   0 16908  156    0 S   0.0  0.0   0:00.19 atd
24043 root      20   0  570m 3952 2780 S   0.0  0.4   0:04.28 console-kit-dae
24110 root      20   0  182m 3032 2484 S   0.0  0.3   0:01.66 polkitd
26310 root      20   0     0    0    0 S   0.0  0.0   0:00.00 flush-8:0
30081 root      20   0     0    0    0 S   0.0  0.0   0:00.02 kworker/0:1
31381 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kworker/0:2
31511 root      20   0 81900 3904 3048 S   0.0  0.4   0:00.03 sshd
31646 root      20   0 19228 1376 1060 R   0.0  0.1   0:00.00 top

今、この文字列を分割したいので、次のJava関数を使用しました

for(int i = 0; i < mystring.length; i++){
    String[] values = mystring.split("\\s+");
    System.out.println(values[0]);
}

しかし、チェックするvalues[0]と31646しか表示されず、他は表示されませんか?スプリットの正規表現が間違っていると思うので、これも試してみまし"\\t\\n\\x0B\\f\\r"たが、うまくいきません。これを管理する方法を知っている人はいますか?

4

3 に答える 3

1

どのような出力が必要かわかりませんが、代わりにこのコードを試してください。

String[] values = mystring.split("\\s+");
for(int i=0; i<values.length;i++)
{
    System.out.println(values[i]);
}

これにより、mystring のスペースで区切られたすべてが分割されて表示されます。

編集:あなたが何を望んでいるのかがわかったので、もう少しお手伝いできます. 必要なのは2次元配列なので、好きなように配置できます。これを行う場合:

String[] values = mystring.split("\\s+");
String[][12] output;
for(int i = 0; i < (values.length)/12 ;i++)
{
    for(int i = 0; j < 12; j++)
    {
        output[i][j] = values[i*12 + j];
    }
}

12 個のコマンドがあるため、配列は x x 12 になります。これで、それらを別のループで出力できます。

for(int i = 0; i < output.length; i++)
{
    for(int j = 0; j < 12; j++)
    {
        System.out.print(output[i][j] + " ");
    }
    System.out.println(" ");
}

クラスを作成して、各値を変数として保存することもできます。あなたがやりたいことは、オブジェクトの配列により適しています。

于 2013-10-14T12:29:57.243 に答える