Avatar billede nielsbrinch Nybegynder
21. marts 2002 - 16:03 Der er 4 kommentarer og
1 løsning

Søgning efter tekststykke i en streng

Det burde være intet problem at lede efter et tekststykke i en streng. Der er imidlertid ikke noget i StringBuffer eller String der hedder "contains" el. lign.

Jeg har to stykke streng. Det ene stykke er lavet sådan:
String stykke = sb.substring(i-str.length(), i);

Den anden streng er simpelthen "str" som i dette tilfælde indeholder "<b>"

Jeg ved at "stykke" på et tidspunkt er "<b>" og jeg har da en if-sætning:
if (stykke == str)
{
  fundet = true;
}

Men nej, "fundet" bliver aldrig "true". Selvom jeg har prøvet at skrive følgende lige inden if-sætningen:
System.out.println(stykke+" ?= "+str);

og det viser at de to strenge på et tidspunkt er helt ens.

Jeg har prøvet at skifte "stykke" og "str" ud med "<b>" begge steder, således:

if ("<b>" == "<b>")
  fundet = true;

og så bliver "fundet" til "true" - derfor må jeg konkludere at den ikke forstår at sammenligne "stykke" og "str" selvom de begge er simple strengeobjekter.
Avatar billede carstenknudsen Nybegynder
21. marts 2002 - 16:07 #1
Du skal bruge stykke.equals(str) aldrig
stykke==str.
Avatar billede kresten Nybegynder
21. marts 2002 - 16:08 #2
Øhh.. hvad med compareTo ?

http://java.sun.com/j2se/1.3/docs/api/java/lang/String.html#compareTo(java.lang.String)
Avatar billede carstenknudsen Nybegynder
21. marts 2002 - 16:22 #3
Hvis du bare vil vide om det er den samme streng
er der ingen grund til at bruge compareTo; den
er derimod velegnet hvis du vil sortere strenge.
Avatar billede jakoba Nybegynder
21. marts 2002 - 16:44 #4
du bruger string funktionen indexOf()

indexOf

public int indexOf(String str)

    Returns the index within this string of the first occurrence of the specified substring.

    Parameters:
          str - any string.
    Returns:
          if the string argument occurs as a substring within this object, then the index of the first character of the first such substring is returned; if it
          does not occur as a substring, -1 is returned.

dvs
if ( dinlangstreng.indexOf( "<br>" ) >= 0 ) {
    // så findes "<br>" som del af den streng.
}

mvh JakobA
Avatar billede nielsbrinch Nybegynder
21. marts 2002 - 17:04 #5
Tak for hjælpen - det var netop den indexOf-funktion jeg var igang med at lave forfra ... jeg så godt "equals" derinde, men den virkede på samme måde som '==', altså i mit tilfælde, slet ikke.
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