[C# 2.0] stringbuilder replace dubbel quote

Pagina: 1
Acties:

  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 01-12 20:46
Ik heb een grote blok tekst toegevoegd aan een stringbuilder instance.

Nu wil ik de tekst "lazy=true" vervangen door "lazy=false" waarbij de dubbelquotes meegenomen moeten worden.



code:
1
   builder.Replace("lazy=true", "lazy=false");





Dit codevoorbeeld neemt de quotes niet mee helaas, hebben jullie een idee ?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Je moet de " in de string escapen, "\"lazy=true\""

oogjes open, snaveltjes dicht


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 01-12 20:46
Don Facundo schreef op dinsdag 03 april 2007 @ 16:28:
Je moet de " in de string escapen, "\"lazy=true\""
Ik heb het geprobeerd maar de teksten zijn niet vervangen...

Dit is de code:



code:
1
   builder.Replace("\"lazy=true\"", "\"lazy=false\"");

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
Het volgende al geprobeerd? Werkt volgens mij in VB.NET en zou denk ik ook in C# moeten werken (uit mijn hoofd):

code:
1
builder.Replace("""lazy=true""", """lazy=false""");

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:27

mulder

ik spuug op het trottoir

Wacht ff, die Replace geeft een resultaat, de vervangen tekst. Niet de tekst in de builder word vervangen. Dat ga ik ff checken... en blijkt niet te kloppen wat ik nu zeg :/

[ Voor 17% gewijzigd door mulder op 03-04-2007 16:46 ]

oogjes open, snaveltjes dicht


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
MacWolf schreef op dinsdag 03 april 2007 @ 16:43:
Het volgende al geprobeerd? Werkt volgens mij in VB.NET en zou denk ik ook in C# moeten werken (uit mijn hoofd):

code:
1
builder.Replace("""lazy=true""", """lazy=false""");
Waarom denk je dat dit in C# ook zou moeten werken ?

In C# escape je speciale characters met behulp van de backslash, zoals reeds aangegeven.

Ofwel doe je dit:
code:
1
string s = @"Dit is een string met ""quotes"" en 'single quotes' en andere bazar zoals \-'en";

mind het @teken dus

Strings zijn immutable, dus kijk eens even of de Replace method geen resultaat returned...

[ Voor 9% gewijzigd door whoami op 03-04-2007 16:49 ]

https://fgheysels.github.io/


  • DrDelete
  • Registratie: Oktober 2000
  • Laatst online: 01-12 20:46
DrDelete schreef op dinsdag 03 april 2007 @ 16:38:
[...]


Ik heb het geprobeerd maar de teksten zijn niet vervangen...

Dit is de code:



code:
1
   builder.Replace("\"lazy=true\"", "\"lazy=false\"");
correctie: ik heb een foutje gemaakt, het werkt wel, bedankt!

het moet zijn lazy="true" vervangen door lazy="false" (ik had er dit van gemaakt: "lazy=true" :X )

  • MacWolf
  • Registratie: Januari 2004
  • Laatst online: 06-09-2024
whoami schreef op dinsdag 03 april 2007 @ 16:45:
[...]

Waarom denk je dat dit in C# ook zou moeten werken ?

In C# escape je speciale characters met behulp van de backslash, zoals reeds aangegeven.
Ik ging er van uit omdat C# en VB.NET heel erg veel met elkaar overeenkomen, grootste verschil is met name de syntax. Aan de andere kant programmeer ik eigenlijk nooit in C#, dus weet ook niet alle kleine details, blijkbaar had ik het hierbij mis en lijkt C# hierin meer op talen als C en Java (wat ook wel logisch is natuurlijk).

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Laat hetgeen je nu toont nu precies een syntax-iets zijn..... ;)

https://fgheysels.github.io/


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 31-10 11:58
whoami schreef op dinsdag 03 april 2007 @ 16:45:
[...]

Waarom denk je dat dit in C# ook zou moeten werken ?

In C# escape je speciale characters met behulp van de backslash, zoals reeds aangegeven.

Ofwel doe je dit:
code:
1
string s = @"Dit is een string met ""quotes"" en 'single quotes' en andere bazar zoals \-'en";

mind het @teken dus

Strings zijn immutable, dus kijk eens even of de Replace method geen resultaat returned...
Strings zijn immutable ja, StringBuilders niet. De replace wordt gewoon op de StringBuilder zélf toegepast, hoewel de functie 'm wel ook nog returned. Zie ook de voorbeelden op msdn.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack

Pagina: 1