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