/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problem med String.replaceAll
Fra : Frank N


Dato : 15-01-03 15:47

Hvorfor virker det her ikke????

Skulle den ikke udskrive Frank er meget dum??
Eller har jeg helt misforstået det.

på forhånd tak

public class test {

public static void main(String args[])
{
String x = "frank er vildt dum";
String y = "vildt";
String ny = "meget";

x.replaceAll(ny,y);
System.out.print(x);

}
}
Udskrift:
frank er vildt dum




 
 
Lasse Reichstein Nie~ (15-01-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 15-01-03 16:31

"Frank N" <ask@me.dk> writes:

> Skulle den ikke udskrive Frank er meget dum??
....
> String x = "frank er vildt dum";
....
> x.replaceAll(ny,y);
> System.out.print(x);
....
> Udskrift:
> frank er vildt dum

En String kan man ikke ændre indholdet af. Hvis man vil det, skal man
bruge en Stringbuffer i stedet. Derfor er det ikke så overraskende at
indholdet af x's String ikke har ændret sig.

Hvis du kigger på definitionen af String's replaceAll-metode, så
returnerer den en String. Det er denne nye String der er den
opdaterede version.

Prøv med:

String res=x.replaceAll(ny,y);
System.out.print(res);

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Simon... (15-01-2003)
Kommentar
Fra : Simon...


Dato : 15-01-03 20:15


> Prøv med:
>
> String res=x.replaceAll(ny,y);
> System.out.print(res);

eller bare
x = x.replaceAll(ny,y);

eller
System.out.println(x.replaceAll(ny,y));

metoden udfører jobbet, og returnerer en string, den gemmer altså ikke
direkte det man har
bedt den om at ændre, så du skal huske at gemme det, hvis det er det du
vil.

mvh.Simon



Anders K. Olsen (15-01-2003)
Kommentar
Fra : Anders K. Olsen


Dato : 15-01-03 21:33

"Simon..." <devnull@linux.org> skrev i en meddelelse
news:3e25b33e$0$185$edfadb0f@dread15.news.tele.dk...
>
> den gemmer altså ikke
> direkte det man har
> bedt den om at ændre, så du skal huske at gemme det, hvis det er det du
> vil.

String's er immutable i Java, dvs. de kan ikke ændres. Hvis du kikker på
alle String metoderne, så vil du også se, at ingen af dem rent faktisk
ændrer ved den String de kaldes på. De returnerer derimod en ny String med
resultatet. Hvis du vil ændre på en tekststreng skal du bruge StringBuffer.

/Anders



Martin Kofoed (16-01-2003)
Kommentar
Fra : Martin Kofoed


Dato : 16-01-03 17:52

Frank N wrote:

> String x = "frank er vildt dum";
> String y = "vildt";
> String ny = "meget";
>
> x.replaceAll(ny,y);
> System.out.print(x);

For det første søger du efter "meget" i x. Den findes ikke. For det andet
returnerer replaceAll() en ny streng med resultatet.

Prøv med String res = x.replaceAll(y,ny);


--

Martin

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste