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
>