2014-03-26 31 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