MathGroup Archive 2004

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

Search the Archive

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.


  • 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: Re: trimming a string