2010-03-06 170 views
1
codes = new Vector<String>(); 
titles = new Vector<String>(); 
urls = new Vector<String>(); 
lecturers = new Vector<String>(); 
while (m.find()) { 
    String courseCode = m.group(1); 
    String courseTitle = m.group(2); 
    String courseURL = url; 
    String lecturerName = m.group(4); 
    codes.add(courseCode); 
    titles.add(courseTitle); 
    urls.add(courseURL); 
    lecturers.add(lecturerName); 
} 

我試圖從像10個網站獲得的數據,如果你只是打印出各組自行例如,它的工作原理好嗎: 的System.out.println(courseCode); 會打印出10個courseCodes的列表,但是當我嘗試將它們添加到這些向量中時,它只會添加最後一個courseCode而不是每個courseCode。所以每個向量應該有10個元素,但它們只有1個。有沒有一種方法可以像遍歷匹配?java的正則表達式匹配

+0

很難說沒有看到更多的代碼。我的猜測是你正在實例化一個循環內的'Vector's。 – 2010-03-06 19:53:56

+0

非常感謝,謝謝!太糟糕了,你沒有發佈這個答案大聲笑,所以我不能標記任何正確的:[恨我,當我這樣做,雖然哈哈,提出一個問題,答案結果是真的很明顯! – Becky 2010-03-06 21:22:12

回答

1

也許正則表達式只匹配一次而不是10次。如果你計算你在while循環中迭代的頻率,你可以檢查一下。最簡單的方法是定義一個幫助變量int i=0;並使用i++;(並在循環內部或外部打印它)在循環內部增加此值。同時檢查while循環內的list.size()的矢量大小,以查看大小實際上是如何增長的。

+0

我知道它匹配不止一次,因爲如果我輸入system.out.println(courseCode);而不是codes.add(courseCode);它會打印我期望的內容,但由於某些原因,如果我使用codes.add(courseCode),它將只添加最後一個匹配,而不會有其他內容,並且大小始終爲1。 – Becky 2010-03-06 21:16:18