Re: Re: Manipulating Strings
- To: mathgroup at smc.vnet.net
- Subject: [mg28279] Re: [mg28259] Re: Manipulating Strings
- From: Mianlai Zhou <lailai at carmen.nikhef.nl>
- Date: Sat, 7 Apr 2001 03:44:37 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
I have a much better way to realize it (squash repeated letters in the
string) :
mysquash[str_String] :=
StringJoin[ Characters[str] //. {a___, x_?LetterQ, x_, b___} :> {a, x, b} ]
Is it a acceptable approach?
Mianlai Zhou
NIKHEF, Amsterdam
On Fri, 6 Apr 2001, Brian Higgins wrote:
> I have made some improvements on my original function. It now handles
> arbitrary length sequence of characters:
>
> squash3[str_String] := Module[{SeqRule},
> SeqRule =
> Join[Thread[
> Map[# <> # &, CharacterRange["a", "z"]] ->
> CharacterRange["a", "z"]],
> Thread[Map[# <> # &, CharacterRange["A", "Z"]] ->
> CharacterRange["A", "Z"]]];
> FixedPoint[StringReplace[#, SeqRule] &, str]]
>
> Still seems a bit clunky. Any ideas how this may be further improved.
>
> Brian
>