2014-03-26 66 views
0

我有一個概念,但我不知道如何去。我想分析一個網站,並使用正則表達式來查找某些部分。然後將這些部分存儲爲一個字符串。之後我想要做同樣的事情,但是發現之前和之後的區別。發送所有讀取行到字符串數組

計劃:

  1. 解析/添加的正則表達式發現陣列before線。
  2. 刷新網站/解析/正則表達式添加找到線陣列after
  3. 比較之前的所有字符串與之後的所有字符串。 println任何新的。
  4. 將所有字符串發送到字符串之前。

然後從2.重複永遠。

基本上它只是檢查一個網站的更新代碼,並告訴我什麼更新。

首先,這是可行的嗎?

這是我的第1部分

String before[] = {}; 
int i = 0; 
while ((line = br.readLine()) != null) { 
    Matcher m = p.matcher(line); 
    if (m.find()) { 
     before[i]=line; 
     System.out.println(before[i]); 
     i++;  
    } 
} 

它不工作的代碼,我不知道爲什麼。

+0

'字符串= {};'是一個零長度的數組。同樣,數組的大小也是靜態的,一旦初始化它們就不能增長。但是你可以使用一個列表,而不是'列表 befores = new ArrayList ();'。另請檢查此頁面 - http://stackoverflow.com/a/1732454/738746,在這裏,總結是你應該使用一些HTML解析器來處理這個工作。 –

回答

0

你可以做這樣的事情,假設你從文件中讀取:[]前

Scanner s = new Scanner(new File("oldLinesFilePath")); 
List<String> oldLines = new ArrayList<String>(); 
List<String> newLines = new ArrayList<String>(); 

while (s.hasNext()){ 
    oldLines.add(s.nextLine()); 
} 

s = new Scanner(new File("newLinesFilePath")); 

while (s.hasNext()){ 
    newLines.add(s.nextLine()); 
}  
s.close(); 

for(int i = 0; i < newLines.size(); i++) { 
    if(!oldLines.contains(newLines.get(i)) { 
     System.out.println(newLines.get(i)); 
    } 
} 
+0

謝謝!這工作! – user3435528