Avatar billede esset Nybegynder
22. juli 2004 - 14:59 Der er 5 kommentarer og
1 løsning

Erstat tekst i streng

Findes der en funktion til at erstatte en del af en tekststreng med noget andet tekst ?
Avatar billede mikkelbm Nybegynder
22. juli 2004 - 15:01 #1
Det gør der da:

String tekst = "Dette er en test";
tekst = tekst.replaceAll("test", "prøve");
System.out.println (tekst);
Avatar billede fsconsult.dk Nybegynder
22. juli 2004 - 15:07 #2
Fra java 1.4 findes String.replaceAll (som mikkel skriver).

Du skal bare være opmærksom på at søgningen sker med reqex udtryk!
Avatar billede esset Nybegynder
22. juli 2004 - 15:18 #3
Jeg kan ikke rigtig få den til at acceptere en methode "replaceAll". Jeg har kun replace, og det er en char ad gangen man erstatter.
Avatar billede mikkelbm Nybegynder
22. juli 2004 - 15:19 #4
Hvilken Java version bruger du?

Som fsconsult.dk rigtigt skriver, er den først med fra Java 1.4
Avatar billede mikkelbm Nybegynder
22. juli 2004 - 15:26 #5
Faldt lige over den her metode:

public static String replace(String str, String from, String to)
{   
    StringBuffer retStr = new StringBuffer();   
    int strLen = str.length();   
    int fromLen = from.length();   
    int pos0 = 0;   
    int pos = str.indexOf(from);   
   
    while ((pos >= 0) && (pos0 < strLen))   
    {       
        if (pos > pos0)           
        retStr.append(str.substring(pos0, pos));       
        retStr.append(to);       
        pos0 = pos + fromLen;       
       
        if (pos0 < strLen)           
            pos = str.indexOf(from, pos0);   
    }   
   
    if (pos0 < strLen)       
        retStr.append(str.substring(pos0));   
       
    return retStr.toString();
}

Som skulle være kompatibel med alle java versioner.

Kaldes som følgende:

String tekst = "Dette er en test ";
tekst = replace(tekst, "test", "prøve");
System.out.println (tekst);
Avatar billede esset Nybegynder
23. juli 2004 - 10:35 #6
Det er en version 1.3.x jeg bruger (og som jeg er tvunget til pga. applikationen jeg udvikler til).

Jeg har selv lavet denne efterfølgende - og håber den virker:

StringBuffer tmpurl;
tmpurl = new StringBuffer(url);
tmpurl = tmpurl.replace(url.indexOf("[USER]"), url.lastIndexOf("[USER]"), user);

Hvis ikke bruger jeg din metode mikkelbm som du også får dine point for.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester