kjey Skrevet 12. januar 2007 Skrevet 12. januar 2007 (endret) Hei. Jeg lurer på om noen vet hvordan man kan søke i en tekst etter spesifike ord. Søkeresultatet skal vises ved at ordene som matcher skal bli "bold" i teksten og det skal komme opp en melding hvor mange resultater som matchet. Noen som kan hjelpe meg? Hvis dere ikke "gidder" å skrive en hel kode, er det en måte dere kan forklare fremgangsmåten eller gi en nyttig link? Kanskje jeg lærer best av det... På forhånd takk! Endret 12. januar 2007 av kjey
kjey Skrevet 12. januar 2007 Forfatter Skrevet 12. januar 2007 Fant faktisk ut en litt rar søkealgoritme her Det eneste som er problemet nå er hvordan jeg får ordene gitt de forskjellige indeksene til å bli bold. Her er løsningen min: Klikk for å se/fjerne innholdet nedenfor import java.text.*; class StringSoker { public static void main(String[] args) { // Viktige variabler String s = "Dette er en tekst som ment for å søke i!"; String sokeOrd = "tekst"; int sokeOrdLengde = sokeOrd.length(); int sLengde = s.length(); String sub = ""; // Løkke for(int i = 0; i < (sLengde - sokeOrdLengde + 1); i++) { sub = s.substring(i, (i + sokeOrdLengde)); if(sub.equals(sokeOrd)) { System.out.println("Fant søkeordet i mellom disse indeksene: ( " + (i + 1) + ", " + (i + sokeOrdLengde) + " )."); } // Slutt if } // Slutt for-løkke } }
qualbeen Skrevet 13. januar 2007 Skrevet 13. januar 2007 du har jo allerede fått indexene for substrengen som matcher søkeordet, så poenget blir da å splitte opp opprinnelig del i 3 biter: del 1: del av opprinnelig tekst som er før søketreff del 2: ordet/strengen som ble søkt etter del 3: resten av opprinnnelig tekst Så er det bare å skrive alt sammen ut igjen, System.out.print(del1 + del2 + del3);. Så må du få formatert del2 til å være fet. Hvordan du gjør det vet jeg ikke, jeg kan ikke så mye med JTextArea... Du kan jo lete etter kommandoer i API'en; http://java.sun.com/j2se/1.4.2/docs/api/ja.../JTextArea.html (jeg så det gikk ann å endre font, så det går sikkert ann å bestemme bold/italic/underscore m.m også) og tilslutt: det finnes sikkert bedre løsniner en den jeg kom med, men det å dele opp opprinnelig streng i tre, for så å formatere midterste delen annerledes enn resten burde fungere! Tipper noen andre her inne kjenner bedre til muligheter og begrensninger med JTextArea, så kan være jeg tar feil
kjey Skrevet 13. januar 2007 Forfatter Skrevet 13. januar 2007 (endret) Ah, skal prøve det, er nok ikke så vanskelig nå som jeg har forklaring Men det med å sette en valgt streng i JTextArea til bold får jeg ikke til! Noen som vet noe som helst om det? Har titta en stund i API'et, men er vel ikke proff nok til å plukke ut den riktige metoden selv Endret 13. januar 2007 av kjey
HV Skrevet 13. januar 2007 Skrevet 13. januar 2007 Ah, skal prøve det, er nok ikke så vanskelig nå som jeg har forklaring Men det med å sette en valgt streng i JTextArea til bold får jeg ikke til! Noen som vet noe som helst om det? Har titta en stund i API'et, men er vel ikke proff nok til å plukke ut den riktige metoden selv 7713849[/snapback] JTextArea vil du aldri finne den riktige metoden, prøv broren JEditorPane Koden på denne siden benytter JTextPane som har alt du trenger, burde være en smal sak å endre fra rød understreking til bold skrift... http://www.java2s.com/Code/Java/Swing-JFC/...ightExample.htm
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå