2012-04-11 33 views
-4

我想分割一个非常长的字符串,包括日期,时间和一些评论多次按相同的顺序,如何分开使用java分成日期,时间和评论。使用java分割字符串

如:

21 March 2012 3:48 PM 11 doz 30 September 2011 10:51 AM Hotlist Task Deleted: To-do Ring re: Boody (Jessica ordered socks)With: 3 Beaches Chemist Deleted by: MASTER 21 September 2011 12:55 PM Hotlist Task Created: To-do Ring re: Boody (Jessica ordered socks) With: 3 Beaches Chemist Scheduled by: MASTER Assigned to: MASTER 21 September 2011 12:55 PM 7 doz 

我想输出:

Date    Time  Comments 
21 March 2012  3:48 PM 11 doz 
30 September 2011 10:51 AM Hotlist Task Deleted: To-do Ring re: Boody (Jessica ordered socks)With: 3 Beaches Chemist Deleted by: MASTER 
21 September 2011 12:55 PM Hotlist Task Created: To-do Ring re: Boody (Jessica ordered socks) With: 3 Beaches Chemist Scheduled by: MASTER Assigned to: MASTER 
21 September 2011 12:55 PM 7 doz 
+5

请不要标志你的问题 “紧急” 或 “尽快回复”,请。 – 2012-04-11 11:39:41

+2

如何在读取输入数据时知道何时开始新条目?如果评论包含日期怎么办? – Alderath 2012-04-11 11:44:50

回答

0

你可以尝试使用正则表达式,但你必须有条目之间的线/项分隔符。

0

我会建议创建一个算法,它会根据您的已知格式查找值日期字符串(例如查找匹配其中一个月份的下一个字符串)并根据该字符串打破字符串。找到月份,备份,直到你找到一天和分裂。

0

我还建议使用正则表达式来匹配你想破坏你的字符串的条件。

另外你可以把一个分隔符让正则表达式知道破坏字符串。

0
s.replaceAll ("([0-3]?[0-9] [A-Z][a-z]+ 20[0-9][0-9])", "\n$1") 

结果:

21 March 2012 3:48 PM 11 doz 
30 September 2011 10:51 AM Hotlist Task Deleted: To-do Ring re: Boody (Jessica ordered socks)With: 3 Beaches Chemist Deleted by: MASTER 
21 September 2011 12:55 PM Hotlist Task Created: To-do Ring re: Boody (Jessica ordered socks) With: 3 Beaches Chemist Scheduled by: MASTER Assigned to: MASTER 
21 September 2011 12:55 PM 7 doz