2010-03-06 25 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); 
} 

Je suis en train d'obtenir des données de 10 sites comme et il fonctionne bien si vous venez d'imprimer chaque groupe par lui-même, par exemple: System.out.println (courseCode); imprime une liste de 10 codes de cours mais lorsque j'essaie de les ajouter dans ces vecteurs, il ajoute seulement le dernier code de cours à la place de chacun d'eux. Donc, chaque vecteur DEVRAIT avoir 10 éléments, mais ils n'en ont que 1. Y a-t-il un moyen d'aimer itérer les matchs?java regex matcher

+0

Difficile à dire sans voir plus de code. Je suppose que vous instanciez les 'Vector' dans une boucle. –

+0

C'était juste, merci beaucoup! Dommage que tu ne l'affiche pas comme une réponse lol donc je ne peux pas la marquer comme correcte: [Je déteste quand je fais ça par lol, postez une question et la réponse finit par être quelque chose de vraiment évident! – Becky

Répondre

1

Peut-être que l'expression rationnelle correspond une seule fois au lieu de 10 fois. Vous pouvez vérifier cela si vous comptez combien de fois vous parcourez la boucle while. Le plus simple est de définir une variable d'aide int i=0; et d'augmenter cette valeur dans la boucle avec i++; (et de l'imprimer à l'intérieur ou à l'extérieur de la boucle). Vérifiez également la taille des vecteurs avec list.size() dans la boucle while pour voir comment la taille augmente réellement.

+0

je sais qu'il correspond plus d'une fois parce que si je tape system.out.println (codeCours); au lieu de codes.add (courseCode); il imprimera ce que je m'attends, mais pour une raison quelconque, si j'utilise codes.add (code de cours), il ne fera qu'ajouter la dernière correspondance et pas d'autres et la taille est toujours 1. – Becky