Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

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

Search the Archive

Re: Re: String to List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77050] Re: [mg76995] Re: String to List
  • From: Carl Woll <carlw at wolfram.com>
  • Date: Fri, 1 Jun 2007 02:50:33 -0400 (EDT)
  • References: <f3jigv$dpo$1@smc.vnet.net> <200705310729.DAA05605@smc.vnet.net>

Szabolcs wrote:

>King, Peter R wrote:
>  
>
>>I have a string which in general looks something like
>>
>> a="{x,16,x,1T,x}"
>>
>>In other words it looks like a list with a mixture of characters and
>>numbers and so on. I want to pick out the individual elements of this
>>(using the commas as delimiters)
>>
>>Clearly a[[1]] etc doesn't mean anything
>>
>>I can do b=ToExpression[a] and I get a list so b[[1]] is x  and
>>b[[2]]=16 (that is the number sixteen but I can convert this back into =
>>a
>>string with ToString. The problem is b[[4]] which ToExpression turns
>>into T as it thinks I mean 1 x T.
>>
>>So I would appreciate help with either
>>
>>i) converting my original string to a list as I would like
>>
>>Or
>>
>>Ii) stopping the evaluation of 1T into T so that I can get the string 1T
>>
>>(The only thought I had was to step through the original string
>>character by character telling it to put the characters into different
>>elements of a list each time  I pass a comma, but this looked a bit
>>cumbersome).
>>
>>Many thanks,
>>
>>Peter King
>>
>>    
>>
>
>The best solution is to generate the data in a format that is easy to 
>read for Mathematica, e.g. {"x", "16", "x", "1T", "x"}.
>
>If you must do the conversion in Mathematica, try this (tested in v5.2):
>
>In[1]:= a="{x,16,x,1T,x}"
>Out[1]= {x,16,x,1T,x}
>
>In[2]:= StringTake[a, {2,-2}]
>Out[2]= x,16,x,1T,x
>
>In[3]:= StringSplit[%, ","]
>Out[3]= {x,16,x,1T,x}
>
>Szabolcs
>
>P.S. Is is possible to get Mathematica to print the quotes in standard 
>form?  It is too easy to mistake string for symbols ...
>  
>
Use Style (version 6) or StyleForm (version 5.2) with the option 
ShowStringCharacters->True:

Style["ab", ShowStringCharacters->True]

Or, you can set this option to True at the Notebook level in the option 
inspector. Or you can mess with your stylesheet.

Carl Woll
Wolfram Research


  • Prev by Date: Re: real world solutions for a fractional permutation
  • Next by Date: NestListEffects function not working in 6.0
  • Previous by thread: Re: real world solutions for a fractional permutation
  • Next by thread: Re: String to List