MathGroup Archive 2007

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

Search the Archive

Re: String to List

  • To: mathgroup at smc.vnet.net
  • Subject: [mg77018] Re: [mg76959] String to List
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Thu, 31 May 2007 03:41:18 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

a = "{x,16,x,1T,x}";

b = StringSplit[Fold[StringDrop[#1, #2] &, a, {1, -1}], ","]

{x,16,x,1T,x}

Head /@ b

{String,String,String,String,String}

c = b /. x_?(NumericQ[ToExpression[#]] &) :> ToExpression[x]

{x,16,x,1T,x}

Head /@ c

{String,Integer,String,String,String}


Bob Hanlon

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



  • Prev by Date: Re: String to List
  • Next by Date: Re: String to List
  • Previous by thread: Re: String to List
  • Next by thread: Re: String to List