Re: trimming a string
- To: mathgroup at smc.vnet.net
- Subject: [mg50871] Re: [mg50861] trimming a string
- From: "Akos Beleznay" <abeleznay at equitas-capital.com>
- Date: Sat, 25 Sep 2004 01:55:10 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
thanks, here is my version: trimString[str_String]:=Module[ {trimmed=str}, While[StringMatchQ[trimmed," *"],trimmed=StringDrop[trimmed,1]]; While[StringMatchQ[trimmed,"* "],trimmed=StringDrop[trimmed,-1]]; trimmed ]; trimString[" a b "] I hoped can be done in one line... -akos Akos Beleznay 504.569.9607 -----Original Message----- From: Wolf, Hartmut [mailto:Hartmut.Wolf at t-systems.com] To: mathgroup at smc.vnet.net Subject: [mg50871] Re: [mg50861] trimming a string 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: [mg50871] 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: [mg50871] [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 > This email is intended for the sole use of the intended recipient(s) and may contain confidential or privileged information. No one is authorized to copy or re-use this email or any information contained in it. If you are not the intended recipient, we request that you please notify us by reply email and destroy all copies of the message and any attachments. PAFA reserves the right to monitor and review the content of all e-mail communications sent and/or received by its affiliates. Thank you for your cooperation.