MathGroup Archive 2005

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

Search the Archive

Re: String comparison

  • To: mathgroup at smc.vnet.net
  • Subject: [mg55052] Re: String comparison
  • From: "Valeri Astanoff" <astanoff at yahoo.fr>
  • Date: Thu, 10 Mar 2005 05:25:19 -0500 (EST)
  • References: <d0mo83$755$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

My solution :

In[1]:=
LT[a_String /; StringLength[a] >= 1, b_String /; StringLength[b] >=
1]:=
    LT[StringTake[a,1], StringTake[b,1]] /;
      Not[StringLength[a] == 1 || StringLength[b] == 1]&&
        Not[StringTake[a,1] == StringTake[b,1]];

LT[a_String /; StringLength[a] >= 1, b_String /; StringLength[b] >=
1]:=
    LT[StringDrop[a,1], StringDrop[b,1]] /;
      Not[StringLength[a] == 1 || StringLength[b] == 1]&&
        StringTake[a,1] == StringTake[b,1];

LT[a_String /; StringLength[a] == 1, b_String /; StringLength[b] > 1]:=
    First@ToCharacterCode[a] <= First@ToCharacterCode[b];

LT[a_String /; StringLength[a] >= 1 , b_String /; StringLength[b] ==
1]:=
    If[First@ToCharacterCode[a] < First@ToCharacterCode[b],True,False];

LE[a_String /; StringLength[a] >= 1 , b_String /; StringLength[b] >=
1]:=
    LT[a,b] || a == b;

GT[a_String /; StringLength[a] >= 1, b_String /; StringLength[b] >= 1]
:= !LE[a,b];

GE[a_String /; StringLength[a] >= 1, b_String /; StringLength[b] >= 1]
:= !LT[a,b];

In[8]:=
alist={{a,3,"bca"},{b,1,"cba"},{c,2,"abc"}};

In[9]:=
Sort[alist,#1[[3]]~LT~#2[[3]]&]

Out[9]=
{{c,2,abc},{a,3,bca},{b,1,cba}}

hth

v.a.


  • Prev by Date: Re: symbolic approximation (formular manipulation)
  • Next by Date: Re: String comparison
  • Previous by thread: Re: String comparison
  • Next by thread: Re: String comparison