Re: trimming a string
- To: mathgroup at smc.vnet.net
- Subject: [mg50869] Re: [mg50861] trimming a string
- From: "Wolf, Hartmut" <Hartmut.Wolf at t-systems.com>
- Date: Sat, 25 Sep 2004 01:55:08 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
I forgot the check for the most simple case; we have to bail out then In[17]:= trimString[str_] := Module[{p = StringPosition[str, " "], s, t, u}, If[p === {}, Return[str]]; t = Transpose[p][[1]]; s = t - Join[{0}, Drop[t, -1] + 1]; u = #[[{1, -1}, 2]] & /@ Split[Transpose[{s, t}], First[#2] == 0 &]; Fold[StringDrop, str, Reverse@Cases[u, {1, _} | {_, StringLength[str]}]]] In[18]:= trimString["xxxx"] Out[18]= "xxxx" -- Hartmut >-----Original Message----- >From: Wolf, Hartmut To: mathgroup at smc.vnet.net >Sent: Friday, September 24, 2004 3:28 PM >To: 'Akos Beleznay'; mathgroup at smc.vnet.net >Subject: [mg50869] RE: [mg50861] trimming a string > > > >>-----Original Message----- >>From: Akos Beleznay [mailto:abeleznay at equitas-capital.com] To: mathgroup at smc.vnet.net >>Sent: Friday, September 24, 2004 10:42 AM >>To: mathgroup at smc.vnet.net >>Subject: [mg50869] [mg50861] trimming a string >> >> >>I would appreciate if somebody could show me a simple way of >trimming a >>string. (I did it a hard way, but suspect an elegant solution.) >> >>Trim(a_string): returns a copy of a string without leading >and trailing >>spaces. >> >[...] >> >>Akos Beleznay >[...] > > >Aknos, > >I don't your solution, but here is another one, striktly unelegant: > > >In[80]:= >trimString[str_] := > Module[{s, t, u}, t = Transpose[StringPosition[str, " "]][[1]]; > s = t - Join[{0}, Drop[t, -1] + 1]; > u = #[[{1, -1}, 2]] & /@ Split[Transpose[{s, t}], >First[#2] == 0 &]; > Fold[StringDrop, str, Reverse@Cases[u, {1, _} | {_, >StringLength[str]}]]] > >In[81]:= ss = "In the beginning there was no earth or sky"; > >In[82]:= ss === trimString[ss] >Out[82]= True >In[83]:= ss === trimString[StringJoin[" ", ss]] >Out[83]= True >In[84]:= ss === trimString[StringJoin[ss, " "]] >Out[84]= True > >(But possibly, for string manipulation, you might like to >search for a different tool, Perl perhaps) > >--- >Hartmut >