2012-07-31 27 views
0

好的,所以我應該製作一個腳本,用於解析來自irc頻道的所有聊天記錄,將匹配名稱的聊天記錄合併,然後按日期對聊天記錄進行排序。分析日誌..只是無法弄清楚

這是一個例子聊天記錄:

jul 29 19:20:53 <lol> lolfile3 
    jul 31 19:20:53 <lol> lolfile3321 
    aug 1 19:20:53 <lol> lolfile31324 
    jul 30 19:20:53 <lol> lolfile32 

我需要時間戳(7月30日19時20分53秒),但是我一直在試圖就結束,但無濟於事小時對它們進行排序。

下面的代碼我已經有(這是文件合併,文件寫入,應有盡有。時間戳是我需要做的最後一件事!)

我無法弄清楚如何將代碼添加到我的問題所以我把你鏈接到pastebin: http://pastebin.com/2VrSRZZr

非常感謝你,如果你能通過發佈代碼來幫助我。很顯然,我不希望被溺愛,但一些代碼會很好。

+0

你可以複製和過去在這裏的代碼。請務必在每行之前放置4個空格,以便格式正確。 – 2012-07-31 23:29:54

+0

如果您可以詢問關於您遇到問題的位置以及將代碼限制爲特定問題的具體問題,它將幫助我們幫助您。 – 2012-07-31 23:30:56

+0

我試過了,但它一直告訴我「糟糕!看起來你沒有正確格式化。」 – phl0w 2012-07-31 23:31:05

回答

0

我不完全確定您的示例中的「」是什麼,因此這可能不完全正確,但它顯示如何將時間戳字符串轉換爲可比較的對象。希望這能讓你走上正軌。

DateFormat dateFormat = new SimpleDateFormat("MMM dd yyyy") 
List<String> lines = readLines(); // use a function of your to read the lines 
List<LogEntry> entries = new LinkedList<LogEntry>(); 
for (String line : lines) { 
    int splitIndex = line.indexOf("<log>"); 
    String time = line.substring(0,splitIndex); 
    Date date = dateFormat.parse(time); 
    entries.add(new LogEntry(date,line.substring(splitIndex)); 
} 

Collections.sort(entries); 


// create a class to hold the log contents and the timestamp 

class LogEntry implements Comparable<LogEntry> { 
    private final Date time; 
    private final String entry; 

    public void compare(LogEntry other) { 
     return time.compareTo(other.time); 
    } 
} 

編輯:我跑你在引擎收錄創建的代碼輸出功率爲

Fri Jul 29 17:09:50 EDT 2011 <phl0w> tes 
Sun Jul 31 17:08:49 EDT 2011 <yyyy> alewrwae 
Sun Jul 31 17:09:50 EDT 2011 <phl0w> tes 
Sun Jul 31 17:10:49 EDT 2011 <Andy_> Speed 
Sun Jul 31 17:10:51 EDT 2011 <Andy_> lol Speed 
Sun Jul 31 17:11:51 EDT 2011 <xxxx> wrkjaer 
Sun Jul 31 19:20:50 EDT 2011 <phl0w> lolfile1 
Sun Jul 31 19:20:53 EDT 2011 <phl0w> lolfile3 
+0

這不起作用,我試過了,但仍然沒有對它們進行排序。 – phl0w 2012-07-31 23:55:07

+0

你可以發佈一個顯示問題的工作代碼的小例子嗎? – 2012-08-01 00:13:58

+0

雖然我不會讓我在這裏發佈代碼(只有550個字符),所以我會將您鏈接到pastebin:http://pastebin.com/P6FjvnMd – phl0w 2012-08-01 00:27:56