MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Working with strings


Brian:

Here's a a way to do it with patterns and Outer:

In[30]:=
Outer[(#1 <> "x" <> #2) &,
    myString /. {{p___, "x", s___} -> Sequence[{p}, {s}]}] // Flatten
{"SxR", "SxK", "SxP", "SxG", "TxR", "TxK", "TxP", "TxG",
 "MxR", "MxK", "MxP", "MxG"}

Ken Levasseur
Math. Sci.
UMass Lowell

Brian Higgins wrote:

> I have a list of string characters that I would like to group in a
> particular way. The list has the following structure:
>
> {n UpperCase Characters, x, m UpperCase Characters}
>
> Here is an example:
>
> myString={"S", "T", "M", "x", "R", "K", "P", "G"}
>
> Now I would like to form the following groupings:
>
> {"SxR", "SxK", "SxP", "SxG", "TxR", "TxK", "TxP", "TxG", "MxR", "MxK",
> "MxP", \
> "MxG"}
>
> A brute force way of doing this is
>
> subString[n_] := Split[myString, UpperCaseQ[#2] && UpperCaseQ[#1]
> &][[n]];
>
> Flatten[Outer[StringJoin, Outer[StringJoin, subString[1],
> subString[2]],
>     subString[3]]]
>
> Does anyone have any elegant way of doing this with perhaps using
> replacement rules?
>
> Thanks much,
>
> Brian



  • Prev by Date: Re: Working with strings
  • Next by Date: RE: Simple Eval Question
  • Previous by thread: Working with strings
  • Next by thread: Re: Working with strings