[java]extreem vaag probleem met \\

Pagina: 1
Acties:

  • Invalid
  • Registratie: September 2001
  • Niet online
Ik wil in strings het teken ' in \' veranderen. Dus gebruik ik:
code:
1
string.replaceAll("'", "\\'");


Maar deze code doet niets! Nog vreemder is dit:
code:
1
string.replaceAll("'", "\\");


Dit geeft de volgende fout:
code:
1
2
3
4
5
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
        at java.lang.String.charAt(String.java:460)
        at java.util.regex.Matcher.appendReplacement(Matcher.java:544)
        at java.util.regex.Matcher.replaceAll(Matcher.java:646)
        at java.lang.String.replaceAll(String.java:1710)


Ik snap er niets van. Weet iemand een andere manier om dit gedaan te krijgen?

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

dat komt omdat \\ wordt geintepreteerd als \ en \" als "

wat je dus moet doen is waarschijnlijk:

code:
1
string.replaceAll("'", "\\\\'");

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hier is een keer een topic over geweest, maar ik kan hem niet vinden.... Volgens mij moest je vier \\\\ gebruiken, maar dat weet ik niet zeker meer. Het heeft te maken met de waarschuwing die ik hier post in mijn eerste post.

[rml][ Java] in string array alle ij vervangen door y[/rml]/

Je kan ook de alternatieve code gebruiken die daar staat :*) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Volgens mijn werkt replaceAll met regular Expressions
Replaces each substring of this string that matches the given regular expression with the given replacement.
An invocation of this method of the form str.replaceAll(regex, repl) yields exactly the same result as the expression

Pattern.compile(regex).matcher(str).replaceAll(repl)
Ik weet niet veel van regex maar is " ' " een geldige regex?

mm, of daar gaat het probleem niet over 8)7 8)7

  • MenaceD
  • Registratie: November 2001
  • Niet online
Ik weet wel als je een \ in een string wil gebruiken dat je m dan dubbel moet tikken, dus: \\ dit omdat java m anders niet herkend.
heeft te maken met bepaalde string-karakters zoals \n (volgende regel)

misschien dat dat er iets mee te maken heeft?