[java] string aanpassen reguliere expressie

Pagina: 1
Acties:

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Hallo, het lukt mij niet om het volgende te bewerkstelligen in Java.

Een string met spaties moet als volgt worden opgeleverd.
code:
1
   wordt     behandeld  door

en moet worden
code:
1
WordtBehandeldDoor


In perl kan dit als volgt:
Perl:
1
$contentName =~ s/\s*\b(.)/\u$1/g;


Maar in Java lukt het me niet:
Java:
1
contentName.replaceAll( "\\s*\\b(.)", "\\u$1" )


Wellicht kent Java het variabele passing naar $1 niet. Ik kan hier niet echt iets over vinden. De melding die mijn tomcat geeft luidt: invalid unicode

[ Voor 21% gewijzigd door Krooswijk.com op 09-05-2006 21:18 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Is het niet \1 in plaats van $1 in Java? Ik ken geen Java, maar in PHP werkt het wel zo.

Sowieso ziet die regexp er een beetje vreemd uit trouwens... Moet je niet gewoon "\s" vervangen door een lege string? En moeten er geen delimiters gebruikt worden in Java?

[ Voor 50% gewijzigd door NMe op 09-05-2006 21:41 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
$1 e.d. werkt wel in Java, volgens mij moet je nog wel een ? achter de . plakken voordat het zover is.

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Java kent de '\u' operator helemaal niet (zie JavaDoc voor Pattern). Je zult hier dus handmatig een split-en-capitalize moeten doen...

edit:
De melding die de Java compiler uitspuugt geeft al een kleine hint: hij wil nl. de \u als Unicode karakter gaan interpreteren, maar dat lukt niet zo aardig...

[ Voor 31% gewijzigd door JaWi op 10-05-2006 09:15 ]

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


  • watzie
  • Registratie: Juni 2001
  • Laatst online: 18-02 10:40
Moet het perse met een regexp?
Het kan ook heel makkelijk met java commons lang:
code:
1
2
3
String source = "   wordt     behandeld  door";
String result = WordUtils.capitalize(source);//levert    Wordt     Behandeld  Door
result = StringUtils.deleteWhitespace(result);//levert WordtBehandeldDoor

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
Ja ik had al het vermoeden.

Ik heb het nu opgelost met de String functies split, substring en toUpperCase, dan lukt ie ook. Iig bedankt.
Pagina: 1