RE: Working with strings
- To: mathgroup at smc.vnet.net
- Subject: [mg31965] RE: [mg31940] Working with strings
- From: "tgarza01 at prodigy.net.mx" <tgarza01 at prodigy.net.mx>
- Date: Fri, 14 Dec 2001 04:21:33 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Something like this,perhaps?
In[1]:=
myString = ToString /@ {S, T, M, x, R, K, P, G}
Out[1]=
{"S", "T", "M", "x", "R", "K", "P", "G"}
In[2]:=
posx = Flatten[Position[LowerCaseQ /@ myString, True]][[
1]]
Out[2]=
4
In[3]:=
string1 = Take[myString, posx - 1]
Out[3]=
{"S", "T", "M"}
In[4]:=
string2 = Take[myString, posx - Length[myString]]
Out[4]=
{"R", "K", "P", "G"}
In[5]:=
Flatten[Outer[List, string1, string2], 1] /.
{a_String, b_String} -> StringJoin[a,
myString[[posx]], b]
Out[5]=
{"SxR", "SxK", "SxP", "SxG", "TxR", "TxK", "TxP", "TxG",
"MxR", "MxK", "MxP", "MxG"}
Tomas Garza
Mexico City
Original Message:
-----------------
From: bghiggins at ucdavis.edu (Brian Higgins)
To: mathgroup at smc.vnet.net
Subject: [mg31965] [mg31940] Working with strings
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
--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web.com/ .