You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@velocity.apache.org by "Streithorst, Kip" <ks...@ball.com> on 2002/04/03 16:57:47 UTC

Am I missing something simple? calling java.lang.String.replace(c har, char)

I am trying to call java.lang.String.replace(char oldChar, char newChar)

in my velocity template using 

$thestring.replace('\\', '/') 

But this doesn't seem to work. 

Thanks, 
Kip 


Re: Am I missing something simple? calling java.lang.String.replace(c har, char)

Posted by "Geir Magnusson Jr." <ge...@optonline.net>.
On 4/3/02 9:57 AM, "Streithorst, Kip" <ks...@ball.com> wrote:

> I am trying to call java.lang.String.replace(char oldChar, char newChar)
> 
> in my velocity template using
> 
> $thestring.replace('\\', '/')
> 
> But this doesn't seem to work.
> 

Beautiful problem :)

There are a whole bunch of things wrong here.  First, '<stuff>' is a string,
not a char.  The diff between "" and '' is that '' isn't interpolated.

So 
#set($foo = 'hello')
#set($bar = "$foo")
#set($woogie = '$foo')
$bar
$woogie

Outputs 

Hello
$foo

We have no natural way to specify a char in Velocity.  That's why the method
isn't getting called.

So you can resort to a horror show like :

#set($foo = "hello?")
#set($thingy = "?!")
#set($a = $thingy.charAt(0))
#set($b = $thingy.charAt(1))
$foo
$foo.replace($a, $b)

And that works.

I have no immediate ideas on what to do about the fact we have no way of
representing a char...

-- 
Geir Magnusson Jr.                                     geirm@optonline.net
System and Software Consulting
Somebody has to do something, and it's just incredibly pathetic that it has
to be us.  - Jerry Garcia


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>