Avatar billede mnv_dk Praktikant
04. juli 2006 - 15:09 Der er 9 kommentarer og
1 løsning

Strip første forekomst

Hej, jeg vil meget gerne strippe første forekomst af noget i en streng.

Hvordan gøres dette?
Avatar billede erikjacobsen Ekspert
04. juli 2006 - 15:21 #1
Har du et eksempel? Mener du at forekomsten kan være "na", ordet "panamaananas", og resultatet "pamaananas"
Avatar billede mnv_dk Praktikant
04. juli 2006 - 15:33 #2
ja
Avatar billede mikkelbm Nybegynder
04. juli 2006 - 15:39 #3
Måske:

String s1 = "panamaananas";
String s2= "na";
String result = "";

int index = s1.indexOf (s2);

if (index >= 0)
{
  result = s1.subString (index, index + s2.length() - 1);
}

System.out.println (result);
Avatar billede erikjacobsen Ekspert
04. juli 2006 - 15:40 #4
System.out.println("panamaananas".replaceFirst("an",""));

...men bemærk at første argument er et regulært udtryk, der er visse tegn, der er magiske, fx. "." og "*"
Avatar billede mikkelbm Nybegynder
04. juli 2006 - 15:42 #5
Ja, glem lige min kommentar. Den dur vist ikke alligevel.
Avatar billede md_craig Nybegynder
04. juli 2006 - 23:08 #6
Var lige lidt hurtig kode:

    public static String RemoveFirstOccurence(String value, String pattern)
    {
        String result = "";
       
        if(value.length() < pattern.length())
            return value;
       
        boolean occurenceFound = false;int x = 0;
        for(int i = 0; i < value.length(); i++)
        {
            if(value.length() - i < pattern.length())
                return result += value.substring(i);

            if(value.charAt(i) == pattern.charAt(0))
            {
                occurenceFound = true;
                for(x = 0; x < pattern.length(); x++)
                {
                    if(value.charAt(i+x) != pattern.charAt(x))
                    {
                        result += value.substring(i,x);
                        occurenceFound = false;
                        break;
                    }
                }   
                }
            else
            {
                result += value.charAt(i);
            }
           
            if(occurenceFound)
            {
                result += value.substring(i+x);
                break;
            }
        }
        return result;
    }

er ikke gennemtestet, men kig på det... hvis du ikke finder en anden løsninge på . og * problemet... er ikke så meget inde i Java mere som jeg en gang var :S
Avatar billede mnv_dk Praktikant
07. juli 2006 - 09:22 #7
erikjacobsen: Det var jo lige den jeg skulle bruge... Takker :)
Avatar billede mnv_dk Praktikant
09. juli 2006 - 21:06 #8
erikjacobsen: æg det venligst som et svar!
Avatar billede erikjacobsen Ekspert
09. juli 2006 - 21:30 #9
Jeg samler slet ikke på point, tak.
Avatar billede mnv_dk Praktikant
23. oktober 2006 - 09:22 #10
Så svarer jeg selv.
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