2012-11-23 40 views
0

我想解析一些輸出。輸出如下:Java String.split(「\ s +」)

raidz1-0 ONLINE 0 0 0

我的代碼如下:

String line = "\traidz1-0 ONLINE  0  0  0"; 
String[] tokens = line.split("\\s+"); 

令牌最終被{"raidz1-0", "ONLINE", "0"}

出於某種原因,在過去的2個零被丟棄。我想保留這些零,請告訴我如何。

+1

你肯定這是到底發生了什麼? – NPE

+4

請包括確定什麼標記被拆分的代碼 - 您可能在那裏做錯了什麼。 – jrajav

+0

我正在監視調試器中的值。還注意到我錯過了源字符串中的選項卡,請查看我編輯的OP – Tim

回答

1

那麼,它在我的情況下正常工作,它應該工作: -

String line = "\traidz1-0 ONLINE  0  0  0"; 
String[] tokens = line.split("\\s+"); 

System.out.println(Arrays.toString(tokens)); 

OUTPUT: -

[, raidz1-0, ONLINE, 0, 0, 0] 

你確定,你沒有得到最後兩零?

+0

謝謝你是對的,這是我在看調試器。您的驗證確實有幫助,謝謝! – Tim

+0

@Tim ..那麼,它現在有效嗎? –

+0

一直工作,IDE把我扔了。 – Tim

3

此代碼:

String line = "\traidz1-0 ONLINE  0  0  0"; 
String[] tokens = line.split("\\s+"); 
System.out.println(tokens.length); 
System.out.println(Arrays.toString(tokens)); 

打印:

6 
    [, raidz1-0, ONLINE, 0, 0, 0]