2012-03-07 106 views
1

我想格式化一個字符串「Event」解析和拆分字符串

當我打印它時。它給我如下結果:

When : Wed 18 Apr 2012 04:30 to Wed 18 Apr 2012 06:30 

Who: [email protected] 

Event status : Confirmed. 

它給出了這3類的答案。

Who,when and Event Status

但我想這三個結果在一個單獨的字符串。如何格式化字符串,這些使我會得到它分開

+0

你能顯示代碼嗎? – 2012-03-07 08:40:35

+0

你能解釋一下嗎? – 2012-03-07 08:41:53

回答

4

String[] parts = resultString.split("\n+");

通過進入這將拆分您的字符串(\n+意味着一個或多個新在parts陣列線符號),並存儲份

+2

您可能需要'「\ n +」','*'表示0個或更多符號,而'+'表示1個或更多。 – amit 2012-03-07 08:43:52

+0

是的:D謝謝@amit – shift66 2012-03-07 08:44:36

+1

你可以在零件上循環並檢查它使用的字符串是什麼字符串的startsWith(String prefix)方法。例如,你可以檢查firsrt部分是否是'When部分:'for(String part:parts){if(part.startsWith(「When」)){爲when做些什麼}} – shift66 2012-03-07 09:17:14

0

如果在之間,則3條線使用此單一的新行字符:

String splitLine[] = String.split("\\r?\\n");

0

根據\r\n拆分內容,將其視爲新行。

0

如果我沒有理解好,你必須輸入字符串:

When : Wed 18 Apr 2012 04:30 to Wed 18 Apr 2012 06:30 

Who: [email protected] 

Event status : Confirmed. 

而且你希望得到儘可能輸出三個字符串(或字符串數​​組)分別包含:

whenString="Wed 18 Apr 2012 04:30 to Wed 18 Apr 2012 06:30" 
whoString="[email protected]" 
eventString="Confirmed." 

如果這是,那麼

String[] lines = source.split("\n+"); 

int index = lines[0].indexOf("When"); 
String whenString = lines[0].substring(index+7); 

index = lines[1].indexOf("Who"); 
String whoString = lines[1].substring(index+5); 

index = lines[2].indexOf("Event status"); 
String whoString = lines[2].substring(index+15);