in reply to C to Java string conversion script

I am still but an egg myself, but here was what I came up with (including my testing code). Did you want a comma after the last character, as in your posting, or was that a typo?
#!/usr/bin/perl -- -w use strict; use diagnostics; my @test = ( '"this is a test"', '"anStr"' ); foreach my $item (@test) { print($item, "\n", &jc($item), "\n"); } sub jc { my ($line) = shift; my (@parts, $i); @parts = split('', $line); $parts[0] = '{'; for ($i = 1; $i < $#parts - 1; $i++) { $parts[$i] =~ s/(.)/(byte)'$1',/; } $parts[$#parts - 1] =~ s/(.)/(byte)'$1'/; $parts[$#parts] = '}'; return(join('', @parts)); }
UPDATE: In the spirit of "there's more than one way to do it", a (hopefully) cleaner version of the jc() routine than above.
sub jc { my ($line) = shift; my (@parts, $i); @parts= split('', $line); (undef) = shift(@parts); (undef) = pop(@parts); for ($i = 0; $i <= $#parts; $i++) { $parts[$i] =~ s/(.)/(byte)'$1'/; } return('{' . join(',', @parts) . '}'); }
I considered using a two-pass loop performing a pop() then reverse() on the array to remove the quotes on either end, but I think that would have been more work on the computer.