MathGroup Archive 2004

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

Search the Archive

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
>


  • Prev by Date: Re: Programing operations with lists
  • Next by Date: Re: Programing operations with lists
  • Previous by thread: Re: trimming a string
  • Next by thread: Re: trimming a string