for(int j=0; j<temp.length;j++){ for (int i = 0 ; i < urlTextArray.length ; i++){ if(urlTextArray[i].equalsIgnoreCase(temp[j])){ count++; } else{ count = count; } } }
Sådan ser min rigtige kode ud. Og den virker fint så længe temp kun indeholder et enkelt ord. Og det er jo ikke holdbart. Hvad skal jeg gøre for at få gemt de ord der matcher i et array eller en string?
Problemet er at så længe temp kun indeholder et ord virker det fint. Men jeg vil gerne have det skal kunne indeholde flere ord. Og finde match på alle ordene et efter et. Mit spørgsmål er hvordan jeg kan få gemt de ord der matcher i en string eller array samt antal gange de optræder.
Dit oprindelige spørgsmål går på "Jeg skal have talt hvor mange af det ene arrays strings der er i det andet." - der stod ikke noget om at du også skulle have ordene ud.
Det er nu altså stadig kun det første ord i temp det virker for. Resten af temp arrayet giver 0; Selvom det burde give mere. Jeg har prøvet at udskrive de to arrays hver for sig. De indeholder begge en bunke ord.
for(int j=0; j<temp.length;j++){ count= 0; for (int i = 0 ; i < urlTextArray.length ; i++){ if(urlTextArray[i].equalsIgnoreCase(temp[j])){ count++; } } System.out.println(temp[j]+ " "+ count); }
Jeg beklager jeg har fået det til at virke nu........ Der var et lille mellemrum i arrayet før hvert ord på grund af den måde jeg havde splittet stregen på. Da jeg fjernede det virkede det perfekt.
Den metode som du har hjulpet mig med ovenfor skal vi bruge til i en thread som skal kunne sove et stykke tid over flere omgange. Når den vågner skal den afprøve metoden igen og gerne i en løkke der fortsætte så længe jeg ønsker.
Problemet er jo så at når jeg vikler metoden ind i en ny løkke tæller den 'dobbelt op' fordi den ikke nulstiller metoden undervejs inden den kalder igen. (det hele er naturligvis i en try-catch) hvordan kan vi få tråden til at 'starte forfra hver gang den kalder metoden'?
Når jeg kalder den metode som du hjalp mig med i en ny for-løkke, som den jeg viser dig ovenfor, tæller tælleren yderligere op. Dvs. hvis der var 3 forekomster af Rød da den blev kaldt første gang er der 4 næste gang, 5 gangen efter osv. Det er naturligvis ikke korrekt. o.countWords(o.getSite(), o.getWords()) er den metode du har hjulpet mig med længere oppe.
Derfor ville jeg gerne 'nulstille' min metode så den altid bliver kaldt på ny hver gang en tråd vågner. Giver det mening nu?
Ja i den oprindelige metode gør det. Og det er den metode jeg så endnu engang skal have igennem en for løkke og her tæller den altså op yderligere. Det forstår jeg heller ikke når vi har sat den til nul i den oprindelige metode.
Metoden som du hjalp mig med virker fint for sig selv. Jeg skal dog bruge den til en tråd som skal sove et stykke tid ad flere gang og derefter vågne igen også ad flere gange.
Hver gang tråden vågner vil jeg bruge metoden, som du hjalp mig med for at se om der er et nyt match.
Men når jeg kalder metoden inden i en ny for løkke tæller den dobbelt op og resultatet bliver således hver gang tråden vågner:
Morgenstund 1 i 5
Morgenstund 2 i 10
Som altså kommer af følgende: for (int i =0; i<10;i++) { System.out.println(o.countWords(o.getSite(), o.getWords())); currentThread().sleep(minuts); }
Der er ingen grund til at det er løkken. Det er givetvis noget i resten af din kode.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.