Working with Strings
- To: mathgroup at smc.vnet.net
- Subject: [mg35021] Working with Strings
- From: bghiggins at ucdavis.edu (Brian Higgins)
- Date: Thu, 20 Jun 2002 02:13:18 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Mathgroup,
In a webMathematica application I need to process string information.
The essential problem is as follows. The user selects chemical
species such as
species1 = "cis-3-hexene";
species2 = "acetone";
Ideally these strings need to be processed into a list by using
AppendTo to obtain
mystring = {"cis-3-hexene", "acetone"}.
Then finally this list has to be converted to a string to be passed by
the web browser for another 'session', as follows
In[13]:=ToString[mystring]
Out[13]="{cis-3-hexene, acetone}"
The problem is that in the new session I need to convert this string
back to a Mathematica expression for further processing, and when I do
this the data get corrupted:
In[14]:=ToExpression[ToString[mystring]]
Out[14]={-3 + cis - hexene, acetone}
I have figured a way around this problem but it is in my opinion
obtuse and I am looking for a more direct way to handle my problem.
Any thoughts?
Here is the way I handle it now.
Instead of using AppendTo I create the string for passing to the
browser as follows
ClearAttributes[Plus, Orderless]
specieslist = ToString[species1 + species2]
(Note the order is important)
In the new session this string is processed with the following
function
stringList[mylist_] :=
Module[{aa},
aa = DeleteCases[Characters[mylist], x_ /; x == " ",
Infinity] //. {x1___, "+", x2___} :> {{x1}, {x2}};
Cases[aa, {x__String} :> StringJoin[x], Infinity]]
In[16]:=stringList[specieslist]
Out[16]={"cis-3-hexene", "acetone"}
Thanks in advance for any help you can offer,
Brian