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"}