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/ .