2012-09-20 17 views
1

我有一個包含ID,緯度,經度,refname,用戶ID,用戶名管道分隔字符串:Android的StringTokenizer的 - 讀空白值

1390|-32.5506782531738|18.9797592163086|Hardie - Vrede 4|21|Hardie van der Merwe 
1391|-33.5143165588379|18.422327041626|test|3|sgroenewald 
1392||||3|sgroenewald 

當我使用一個StringTokenizer類來讀取這些行,他們的工作,直到我擊到第3行,那裏有空白值。我讀取了ID,然後檢查hasMoreTokens(),它返回true,但它跳過空白並跳到第二個最後一個字段,它使用nextToken讀爲3,但是寫入代碼中的錯誤變量。

繼續在我讀使用的nextToken,期待它成爲經度下一場,但我得到一個字符串返回(sgroenewald)和車輪脫落..

有沒有辦法,看看如果下一個標記在閱讀之前是空白的嗎?

回答

0

你可以做的一件事是,用String類的replace()方法替換這些空格,並且沒有空格(「」和「」)。

String finalStr =「1390 | -32.5506782531738 | 18.9797592163086 | Hardie - Vrede 4 | 21 | Hardie van der Merwe」;

finalStr = finalStr.replaceAll(" ", ""); 
+0

空白字段中沒有空格。我已經將示例放入代碼格式,所以也許它更清晰。 –

+0

那麼它是真實的? – Lucifer

+0

如果您查看第3行,則|之間沒有任何內容 - 甚至沒有空格。用「」替換「」只會通過刪除所有空格來破壞名稱字段。 –

1

嘗試使用constructor of StringTokenizer用3參數,可以指定作爲returnDelimiterstrue。當然,您需要在循環標記器時手動從值本身刪除分隔符。

+0

謝謝,希望StringTokenizer會爲我做的工作。我將用作最後的手段 –