Avatar billede half_d Nybegynder
29. januar 2002 - 18:32 Der er 8 kommentarer og
1 løsning

Replace string i string.... hvordan!

Hejsa,
jeg skal meget meget enkelt bare skifte nogle CR med LF.
En fil med f.eks. Mac linieendelser skal ændres til at ha' UNIX endelser eller Win.

først og fremmest CR til LF det er vigtigst.

Jeg har alt det andet jeg skal bruge.
Jeg kan bare ikke finde ud af lave en simpel replace eller regex ting der gør det.

Jeg har en String der hedder record, den indeholder en linie fra en tekstfil. Den skal checkes for CR.(\r)
Det tegn skal skiftes med LF (\n)

(Det kunne også være "Foo" eller "Skole" der skulle skiftes, jeg vil ha' string replacement, ikke byte.)

Er der nogle seje gutter der kan hjælpe?

Tusind tak på forhånd,
Halfdan
Avatar billede soreno Praktikant
29. januar 2002 - 18:49 #1
på String klassen findes:
replace(char oldChar, char newChar)
Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.

ku' du ikke prøve den?
Avatar billede soreno Praktikant
29. januar 2002 - 18:50 #2
sorry, så ikke din betingelse i parantesen..
Avatar billede half_d Nybegynder
29. januar 2002 - 18:51 #3
Helt i ordern.
Det er jo netop det der er problemet.
Der må da være noget lignende til string et sted?!?

// Halfdan
Avatar billede el_gnu Nybegynder
29. januar 2002 - 19:10 #4
Du kan bruge StringTokenizer til at erstatte med

void erstat(String haystack, String needle, String newNeedle) {
  StringTokenizer st = new StringTokenizer(haystack, needle, true);
  StringBuffer result = new StringBuffer("");
  String token;
  while (st.hasMoreTokens()) {
    token = st.nextToken();
    if (token.equals(needle))
      result.append(newNeedle);
    else
      result.append(token);
  }
  haystack = result.toString();
}
Avatar billede half_d Nybegynder
29. januar 2002 - 19:35 #5
sorry jeg lige er dum men hvordan kalder jeg erstat?
min hjerne kan intet længere og jeg er ikke vandt til Java.....

tak
// Halfdan
Avatar billede el_gnu Nybegynder
29. januar 2002 - 19:39 #6
du paster den metode jeg postede før ind i din klasse.
Den streng der skal erstattes i er første parameter, anden parameter er den streng der skal erstattes og tredje parameter er det der skal erstattes med
Avatar billede half_d Nybegynder
29. januar 2002 - 19:41 #7
ja, dertil er jeg kommer ;)
men hvordan får jeg resultatet ind i en ny streng som jeg smider ud i filen.
(jeg kan godt smide i fil ...)
Avatar billede el_gnu Nybegynder
29. januar 2002 - 20:47 #8
Så skal du nok omskrive metoden, så den returnerer en streng i stedet.
En lappeløsning kunne være at kopiere den streng der skal erstattes i inden den bliver sendt til metoden, altså:

String myString = "her er en test";
String nyString = new String(myString);
erstat(nyString, "test", "prøve");
Avatar billede half_d Nybegynder
29. august 2002 - 04:05 #9
Jeg har ikke lige haft tid til at checke noget af det endnu (den sidste kommentar i det mindste) men jeg giver lige nogen point dér.

Tak for hjælpen.
// Halfdan
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